读书人

关于#undef的一个小疑点

发布时间: 2012-05-31 12:19:24 作者: rapoo

关于#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

[解决办法]
预处理是编译时进行的

不是运行时,在代码生成的时候就已经决定了,不会等到运行时候再看

读书人网 >C语言

热点推荐