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