一、前言
二、功能实现
2.1年份信息生成
#define YEAR ((((((((unsigned int)(__DATE__ [7 ] - '0')) * 10) + \
(unsigned int)(__DATE__ [8 ] - '0')) * 10) + \
(unsigned int)(__DATE__ [9 ] - '0')) * 10) + \
(unsigned int)(__DATE__ [10] - '0'))
2.2月份信息生成
#define MONTH ( __DATE__ [2] == 'n' ? (__DATE__ [1] == 'a' ? 1 : 6) \
: __DATE__ [2] == 'b' ? 2 \
: __DATE__ [2] == 'r' ? (__DATE__ [0] == 'M' ? 3 : 4) \
: __DATE__ [2] == 'y' ? 5 \
: __DATE__ [2] == 'n' ? 6 \
: __DATE__ [2] == 'l' ? 7 \
: __DATE__ [2] == 'g' ? 8 \
: __DATE__ [2] == 'p' ? 9 \
: __DATE__ [2] == 't' ? 10 \
: __DATE__ [2] == 'v' ? 11 : 12)
2.3日期信息生成
#define DAY ((((__DATE__ [4] == ' ') ? (0) : \
(__DATE__ [4] - '0')) * 10) + (__DATE__ [5] - '0'))
2.4文件名信息生成
#if 0
#define FILENAME (strrchr((__FILE__), '/')) ? (strrchr((__FILE__), '/') + 1) : (__FILE__)
#else
#define FILENAME (strrchr((__FILE__), '\\')) ? (strrchr((__FILE__), '\\') + 1) : (__FILE__)
#endif
2.5文件行信息生成
#define FILELINE (__LINE__)
2.6实现效果
printf ("YEAR = %04d\r\nMONTH = %02d\r\nDAY = %02d\r\nFILENAME = %s\r\nFILELINE = %d\r\n", \
YEAR, MONTH, DAY, FILENAME, FILELINE);
三、参考资料