关于#undef的一个小问题
- C/C++ code
#include "stdio.h"#define N 100void f(void);main(){ f(); #ifdef N #undef N #endif return 0;}void f(void){ #if defined(N) printf(" N is %d\n",N); #else printf(" N is undefined\n"); #endif}为什么结果是N is undefined
按照顺序的话不应该是 N is 100 ?
把#undef N 这行注释结果就是 N is 100
[解决办法]
预处理是编译时进行的
不是运行时,在代码生成的时候就已经决定了,不会等到运行时候再看