//#if 条件编译 //一般用于产品各个版本的语言包 #include<stdio.h> #include<stdlib.h> //#都是预处理指令,条件表达式必须在预处理里面 //所以条件表达式必须是宏表达式 //双分支条件编译 //#if 条件表达式 //代码段1 //#else //代码段2 //#endif //#endif结束条件编译 //#if,#else和C语言里的if else功能一样,但是时间开销不一样 //if else会编译所有的代码,源码会较长,编译时间会较长 //程序体积大,占用更多内存,运行时间长 //#if,#else只编译符合条件的语句,有效减少被编译的语句, //缩短源码长度,缩短程序执行时间 //多分支条件编译 //#if 条件表达式1 //代码段1 //#elif 条件表达式2 //代码段2 //#elif 条件表达式3 //代码段3 //#elif 条件表达式4 //代码段4 //#else //代码段5 //#endif //检测宏是否定义 //#ifdef 宏定义 //代码段1 //#endif //#ifdef M 检测M这个宏是否定义,定义了就执行代码段1,没有定义就不执行任何操作 //#ifdef一般用于开启某个功能 //检测宏是否未定义 //#ifndef 宏定义 //代码段1 //#endif //#ifndef M 检测M这个宏是否未定义,没有定义就执行代码段1,定义就不执行任何操作 //#ifndef一般用于开启某个功能或者include 重包含排错 //例如 //#ifndef OPENS //#define OPENS ////定义函数或者执行操作,这样就不可能重复的定义函数或者操作了,因为如果已经定义了就不会执行这段代码 //#endif #define LANGUA 'd' void main(){ //双分支条件编译 #if LANGUA=='e'//这里的条件表达式是宏表达式 printf("我是字符e,求各位大哥放过小弟一马! "); #else printf("我就是老大,你们想造反吗! "); #endif //多分支条件编译 #if LANGUA=='e'//这里的条件表达式是宏表达式 printf("我是字符e,求各位大哥放过小弟一马! "); #elif LANGUA=='d' printf("我是字符d,是你们马大哥的小弟! "); #else printf("我就是老大,你们想造反吗! "); #endif //检测宏是否定义 #define M #ifdef M system("color 3f"); #endif //检测宏是否未定义 #ifndef N system("title nihao"); #endif system("pause"); }