语言预处理命令之条件编译(C语言预处理命令之条件编译(ifdefelsee
difif等)
C语言中有哪些搜索
语言中有哪些”关于“C语言中有哪些”的内容
本站搜索更多关于“C语言中有哪些预处理命令及其用法”的内容
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。预处理指令是以号开头的代码行。号必须是该行除了任何空白字符外的第一个字符。后是指令关键字,在关键字和号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令:
指令用途空指令,无任何效果i
clude包含一个源代码文件defi
e定义宏u
def取消已定义的宏if如果给定条件为真,则编译下面代码ifdef如果宏已经定义,则编译下面代码if
def如果宏没有定义,则编译下面代码elif如果前面的if给定条件不为真,当前条件为真,则编译下面代码e
dif结束一个if……else条件编译块error停止编译并显示错误信息
一、文件包含i
clude预处理指令的作用是在指令处展开被包含的文件。包含可以是多重的,也就是说一个被包含的文件中还可以包含其他文件。标准C编译器至少支持八重嵌套包含。预处理过程不检查在转换单元中是否已经包含了某个文件并阻止对它的多次包含。这样就可以在多次包含同一个头文件时,通过给定编译时的条件来达到不同的效果。例如:
fdefi
eAAAi
clude