经常会看到类似下边的code写法,觉得这么写没什么意义。
enum { AA, BB, CC,};#define AA AA#define BB BB#define CC CC
尝试下边代码,发现AA的值被改掉了,没报错,上边的写法能预防这种问题。
#includeenum { AA, BB,};int main(){ printf("%d\n", AA);#define AA 15 printf("%d\n", AA); return 0;}
更深层次的东西应该涉及到预处理顺序,另外我认为 #define AA AA这种写法应该有种快捷方式:)