首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于#undef的一个小疑点

2012-05-31 
关于#undef的一个小问题C/C++ code#include stdio.h#define N 100void f(void)main(){f()#ifdef N#und

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

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

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

热点排行