1.#include<stdio.h>
#include<stdlib.h>
int main(int agrc,char *argv[])
{
printf("hello\n");
}
#if NG_KK_22
printf("world\n");
#endif
return 0;
运行结果为
hello
结果出人意料,但是为啥预处理没报错,未定义的字符NG_KK_22是怎么处理的预处理器进行宏展开之后仍然存在的任何标识符都将用0替换
未定义的宏也能打开编译条件
1.#include<stdio.h>
#include<stdlib.h>
int main(int agrc,char *argv[])
{
printf("hello\n");
}
#if NG_KK_22
printf("world\n");
#endif
return 0;
运行结果为
hello
结果出人意料,但是为啥预处理没报错,未定义的字符NG_KK_22是怎么处理的预处理器进行宏展开之后仍然存在的任何标识符都将用0替换
未定义的宏也能打开编译条件