C语言预处理命令总结
C语言预处理命令是以
下表是本章涉及到的预处理指令,它们都比较常用:
预处理功能是C语言特有的功能,它是在对源代码正式编译之前、由预处理器完成的,程序员在代码中使用预处理命令来调用预处理功能。
宏定义时可以带有参数,宏调用时是以实参代换形参,不过这仅仅是纯文本替换,而不是“值传送”。
为了避免宏替换时发生错误,宏定义的内容应加括号,内容中出现的形参两边也应加括号。
文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。
条件编译允许只编译源程序中满足条件的代码段,使生成的目标程序较短,从而减少了内存的开销并提高了程序的效率。
使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。
#
开头的代码行,# 必须是该行除了任何空白字符外的第一个字符。# 后面是指令关键字,在关键字和 # 之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令在预处理阶段对源文件进行某些文本替换工作。下表是本章涉及到的预处理指令,它们都比较常用:
指令 | 说明 |
---|---|
#include | 包含(引入)一个源代码文件 |
#define | 定义一个宏 |
#undef | 取消已定义的宏 |
#if | 如果给定条件为真,则编译其后的代码 |
#ifdef | 如果宏已经定义,则编译其后的代码 |
#ifndef | 如果宏没有定义,则编译其后的代码 |
#elif | 如果前面的 #if 给定条件为假,并且当前条件为真,则编译其后的代码 |
#endif | 结束一个 #if、#ifdef 或者 #ifndef 条件编译块 |
defined | 这不是命令,而是操作符,用来判断某个宏是否已被定义。 |
预处理功能是C语言特有的功能,它是在对源代码正式编译之前、由预处理器完成的,程序员在代码中使用预处理命令来调用预处理功能。
宏定义时可以带有参数,宏调用时是以实参代换形参,不过这仅仅是纯文本替换,而不是“值传送”。
为了避免宏替换时发生错误,宏定义的内容应加括号,内容中出现的形参两边也应加括号。
文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。
条件编译允许只编译源程序中满足条件的代码段,使生成的目标程序较短,从而减少了内存的开销并提高了程序的效率。
使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。