之所以能够实现条件编译是因为预编译指令是在编译之前进行处理的,通过预编译进行宏替换、条件选择代码段,然后生成最后的待编译代码,最后进行编译。 #if的一般含义是,如果#if后面的常量表达式为true,则编译它所控制的代码,如条件1成立时就代码段1,条件1不成立再看条件2是否成立,如果条件2成立则编译代码段2,否则再依次...
if 语句是C语言中的一种条件编译指令,用于在编译过程中根据条件的真假选择性地编译代码。其基本格式如下:if XXXX xxxxxxxx endif 其中,XXXX是一个预处理表达式,通常是一个常量或宏定义。如果XXXX的值为真,那么#if与#endif之间的代码将会被编译;如果XXXX的值为假,那么这段代码将被跳过,不会被...
组1、组 2 等代码段,可以包含任意 C 源代码,也可以包含更多的命令,包括嵌套的条件式编译命令。在预处理阶段结束时,没有被预处理器保留以用于后续处理的组会从程序中全部删除。 #if 和 #elif 命令 作为#if 或 #elif 命令条件的表达式,必须是整数常量预处理器表达式。这与普通的整数常量表达式不同,主要区别在于...
条件编译区域以 #if、#ifdef 或 #ifndef 等命令作为开头,以 #endif 命令结尾。条件编译区域可以有任意数量的 #elif 命令,但最多一个 #else 命令。以 #if 开头的条件编译区域具有下面的格式:#if 表达式1 [ 组1][#elif 表达式2 [ 组2]][#elif 表达式n [ 组n ]][#else [ 组n+1 ]]#endif 预...
#endif结束一个#if……#else条件编译块 #error停止编译并显示错误信息 一、文件包含 #include预处理指令的作用是在指令处展开被包含的文件。包含可以是多重的,也就是说一个被包含的文件中还可以包含其他文件。标准C编译器至少支持八重嵌套包含。 预处理过程不检查在转换单元中是否已经包含了某个文件并阻止对它的多...
条件编译指令 条件编译指令,顾名思义和预编译指令不同,它们决定了那些代码被编译,哪些代码不被编译。 不过我个人不认为这是动态的。 #ifdef、#ifndef、#endif #ifdef用于判断某个宏是否定义,和#ifndef功能正好相反,二者仅支持判断单个宏是否已经定义 #endif用于终止#if预处理指令。
第一段条件编译:逻辑1会被编译进去 第二段条件编译:逻辑2会被编译进去 区别: #if既关心宏是否定义,又关心宏的逻辑的真假 #ifdef(#if defined())、#ifndef(#if !defined())仅仅关心宏是否被定义,不关心宏的逻辑真假 #if 0 或 #if 1注释 当屏蔽掉大块代码时,使用"#if 0"比使用"/**/"要好。(因为用...
条件编译区域以 #if、#ifdef 或 #ifndef 等命令作为开头,以 #endif 命令结尾。条件编译区域可以有任意数量的 #elif 命令,但最多一个 #else 命令。以 #if 开头的条件编译区域具有下面的格式: #if 表达式1 [组1] [#elif 表达式2 [组2]] ...