在C 语言中,条件编译是一种根据特定条件决定是否编译某段代码的机制。它可以提高代码的可移植性、灵活性和效率。 一、条件编译的指令 #ifdef、#ifndef、#endif: #ifdef:如果某个宏已被定义,则编译其后的代码块。 #ifndef:如果某个宏未被定义,则编译其后的代码块。 #endif:用于结束一个条件编译块。 #if、#eli...
条件编译只会将满足条件的部分代码送到编译器,而不满足条件的代码就会被清理掉。条件语句则是全部的代码都要进入编译器。假设:有 40000 行的代码,其中 20000 行和 iOS 有关,另外 20000 行和安卓有关。如果使用条件语句,无论是 iOS,还是安卓,40000 行的代码都需要进入到编译器中编译后,然后再进行判断。而...
1、为每个.c文件写一份.h文件,.h文件是对它对应的.c文件的说明 2、如果需要用到某个.c文件中的变量、函数、宏时,只需要把该文件的.h文件导入即可 3、.c文件也要导入自己的.h文件,目的是为了让定义与声明保持一致 头文件的相互包含: 假如a.h包含了b.h的内容,而b.h中又包含了a.h的内容,这时就会产生...
5> #if和#elif后面的条件一般是判断宏定义而不是判断变量,因为条件编译是在编译之前做的判断,宏定义也是编译之前定义的,而变量是在运行时才产生的、才有使用的意义 二、举个例子 在第3行定义了一个宏MAX,当然在开发中这个MAX可能被定义在其他头文件中,现在只是为了方便演示,就写到main函数上面了。注意第7到第1...
(1)条件编译:C语言中提供控制编译器流程的语句。 或C源程序中希望对其中一部分内容只是在满足一定条件时才进行编译,形成目标代码,这种对一部分内容指定编译的条件称为条件编译。 (2)#ifndef的作用:如果#ifndef后面的“宏名”未定义,则编译其体内的程序段;否则编译#else部分的程序段,如果没有#else部分,则当“宏...
#error指令让预处理器发出一条错误信息,该信息包含指令中的文本。如果可能的话,编译过程应该中断。可以这样使用#error指令: #if __STDC_VERSION_!=201112L #error Not C11 #endif 编译以上代码后,输出如下: $ gcc newish.c newish.c:14:2: error: #error Not C11 $ gcc -std=c11 newish.c $ ...
条件编译指令类似于选择语句中if、else、else if,只不过因为没有大括号,所以用#endif来作为结尾。#ifdef、#ifndef、#elifdef、#elifndef指令就是#if defined、#if !defined、#elif defined、#elif !defined的简化使用方式。if-else语句是在程序执行中进行选择判断和分支处理,条件编译指令让我们可以控制编译器的...
条件编译是指预处理器根据条件编译指令,有条件地选择源程序代码中的一部分代码作为输出,送给编译器进行编译。主要是为了有选择性地执行相应操作,防止宏替换内容(如文件等)的重复包含。常见的条件编译指令如表 1 所示。 1、#if-#else-#endif 其调用格式为: ...
条件编译指令 #ifdef、#ifndef、#endif #if、#elif、#else、#endif error 自我测评 开门见山 本文主要介绍c语言中条件编译相关的预编译指令,常见的预处理指令如下: 代码语言:javascript 复制 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 ...
(一)条件编译方法 条件编译是通过预编译指令来实现的,主要方法有: 1、#if, #elif, #else, #endif #if条件1 代码段1 #elif 条件2 代码段2 。.. #elif 条件n 代码段n #else 代码段 n+1 #endif 即可以设置不同的条件,在编译时编译不同的代码,预编译指令中的表达式与C语言本身的表达式基本一至如逻辑...