#if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef 如果宏没有定义,则编译下面代码 #elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写 #endif 结束一个#if……#else条件编译块 #error 停止编译并显示错误信息 #if 0...#endif 的例子...
如果指定的 identifier 是一个宏名称(也就是说,它已被 #define 命令定义,并且未被 #undef 命令取消定义),则 defined 表达式会生成值 1。否则,defined 表达式会生成值 0。 defined 运算符相对于 #ifdef 和 #ifndef 命令的优点是:你可以在更大型的预处理器表达式中使用它的值。如下例所示: #if defined(__unix...
printf("我是中国人\n") ; //不会被编译 #endif #if 1 printf("我喜欢中国\n") ; #endif #if 0 printf("wo\n") ; #elif 1 printf("ta\n") ; #else printf("ni\n"); #endif return(0); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19....
#if的一般含义是,如果#if后面的常量表达式为true,则编译它所控制的代码,如条件1成立时就代码段1,条件1不成立再看条件2是否成立,如果条件2成立则编译代码段2,否则再依次类推判断其它条件,如果条件1-N都不成力则会编译最后的代码段n+1. 2、#ifdef, #else, #endif或#ifndef, #else, #endif 条件编译的另一...
条件编译区域以 #if、#ifdef 或 #ifndef 等命令作为开头,以 #endif 命令结尾。条件编译区域可以有任意数量的 #elif 命令,但最多一个 #else 命令。以 #if 开头的条件编译区域具有下面的格式:#if 表达式1 [ 组1][#elif 表达式2 [ 组2]][#elif 表达式n [ 组n ]][#else [ 组n+1 ]]#endif 预...
// 有选择性地 执行 代码 : 选择结构(分支结构) : if switch 编译:预处理(-E) 编译(-S) 汇编(-c) 链接 === 姿势: #if 确定的值 // 确定的值不为0 ,则 很对条语句 就会编译到 程序当中去 很多条语句 #endif 姿势: #if 确定的值 // 确定的值不为0 ,则 很对条语句 就会编译到 程序当中去...
以 #if 开头的条件编译区域具有下面的格式: #if 表达式1 [组1] [#elif 表达式2 [组2]] ... [#elif 表达式n [组n ]] [#else [组n+1 ]] #endif 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 预处理器会依次计算条件表达式,直到发现结果非 0(也就是 true)的条件表达式。预处理器会保留对应组内...
条件编译是C语言预处理器的功能之一,它允许程序在不同的编译条件下包含或排除特定的代码段。这在跨平台开发或需要根据不同配置编译不同代码时非常有用。条件编译指令由预处理器识别和处理,而不是编译器本身。 C语言中常用的预处理器指令用于条件编译 #if:如果条件为真,则编译接下来的代码直到遇到#endif。 #elif...
由#if、#ifdef 、#ifndef 指令开始,最后由#endif指令结束所组成的代码块,我们称为条件预处理块。条件预处理块内部可以包含任意多个 #elif、#elifdef、#elifndef 、#else指令,并且支持条件预处理块的多重嵌套。话不多说,开始代码实战:#include <stdio.h> #define CODE3 1 #define CODE2 0 #define CODE1...
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 #endif结束一个#if……#else条件编译块 #error停止编译并显示错误信息 一、文件包含 #include预处理指令的作用是在指令处展开被包含的文件。包含可以是多重的,也就是说一个被包含的文件中还可以包含其他文件。标准C编译器至少支持八重嵌套包含。