在 C++ 中,按照预处理的功能,我们可以将预处理指令分成三大类,第一类是文件包含类预处理指令,第二类是宏定义类预处理指令,第三类是条件编译类预处理指令。
文件包含类执行常用语将一个系统头文件或者自定义头文件包含到当前文件中,从而把指定的文件和当前的源程序文件连成一个源文件。
预处理指令 | 描述 |
---|---|
#include |
包含一个源代码文件,头文件 |
C++ 源程序中允许用一个标识符来表示一个 字符串,称为 “宏”。被定义为宏的标识符称为 “宏名”。在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去代换,这称为宏替换或宏展开。
预处理指令 | 描述 |
---|---|
#define |
定义宏 |
#undef |
取消已定义的宏 |
一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是 “条件编译”。
预处理指令 | 描述 |
---|---|
#if |
如果给定条件为真,则编译下面代码 |
#ifdef |
如果宏已经定义,则编译下面代码 |
#ifndef |
如果宏没有定义,则编译下面代码 |
#elif |
如果 #if 条件不为真,当前条件为真,则编译下面代码 |
#endif |
结束 #if… 到 …#else 条件编译快 |