(一) #ifdef/ifndef…#else…#endif
直接上代码
#include <stdio.h>
int main(){
#ifdef YI
// #ifndef ER //ifndef表示如果没有宏定义
printf("1\n");
#else
printf("2\n");
#endif
printf("3\n");
return 0;
}
执行结果
由结果可以看到,当改变宏定义(此处是增加了YI这个宏定义后),编译后的程序是不一样的,ifndef和ifdef的作用相反,endif用来结束条件编译的范围
(二) #if…#elif… #else…#endif
与(一)的不同在于:
-
该语句可以多分支而不是只有两个分支。
-
这些语法关键字(#if/#elif等)都需要写上逻辑表达式,可以包含任意逻辑操作符
#include <stdio.h> int main(){ #if defined(YI) && YI==1 printf("1\n"); #elif defined(ER) printf("2\n"); #else printf("3\n"); #endif printf("测试结束\n"); return 0; }