#define is often abused for doing typedefs. Usually there is no issue, but the usage is unnecessarily risky and should be avoided. Concrete example taken from https://stackoverflow.com/questions/1666353/are-typedef-and-define-the-same-in-c: typedef int* int_p1; int_p1 a, b, c; // a, b, c are all pointers to int #define int_p2 int* int_p2 a, b, c; // only first is a pointer!
Furthermore, there is an additional advantage in that typedef respects scoping rules while #define needs a matching undef or else is valid till the end of the file. This simplifies slightly tests/tiny_ssim. This series removes all such abuses of the preprocessor in FFmpeg. Ganesh Ajjanagadde (8): avcodec/lpc: replace #define by typedef avcodec/aac_defines: replace #define by typedef avcodec/ac3: replace #define by typedef avcodec/aacps_tablegen_template: replace #define by typedef avcodec/amr: replace #define by typedef tests/tiny_ssim: replace #define by typedef avcodec/faanidct: replace #define by typedef avcodec/resample2: replace #define by typedef libavcodec/aac_defines.h | 20 ++++++++++---------- libavcodec/aacps_tablegen_template.c | 4 ++-- libavcodec/ac3.h | 8 ++++---- libavcodec/amr.h | 4 ++-- libavcodec/faanidct.c | 2 +- libavcodec/lpc.h | 6 +++--- libavcodec/resample2.c | 12 ++++++------ tests/tiny_ssim.c | 5 ++--- 8 files changed, 30 insertions(+), 31 deletions(-) -- 2.6.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel