关于#undef的一个小疑点
关于#undef的一个小问题
为什么结果是N is undefined
按照顺序的话不应该是 N is 100 ?
把#undef N 这行注释结果就是 N is 100
------解决方案--------------------
预处理是编译时进行的
不是运行时,在代码生成的时候就已经决定了,不会等到运行时候再看
- C/C++ code
#include "stdio.h" #define N 100 void 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
------解决方案--------------------
预处理是编译时进行的
不是运行时,在代码生成的时候就已经决定了,不会等到运行时候再看