预处理器
来自cppreference.com
< cpp
预处理器发生在编译之前,在翻译阶段四运行,其结果将作为一个单独的文件传送给真正的编译器进行编译。
目录 |
[编辑] 指令
预处理指令控制预处理器的操作。每个指令占据一行并且具有如下的格式:
-
#
字符 - 预处理指令(
define
、undef
、include
、if
、ifdef
、ifndef
、else
、elif
、endif
、line
、error
、pragma
之一)[1] - 参数(取決于指令)
- 换行符
空指令(#
后跟一个换行符)是合法的,并且不产生任何具体效果。
[编辑] 功能
预编译器在源文件翻译中有如下的功能:
- 有条件地编译源文件的若干部分(由指令
#if
、#ifdef
、#ifndef
、#else
、#elif
和#endif
控制)。 - 替換文本宏,并可以连接标识符,或将标识符放入字符串中(由指令
#define
和#undef
,预编译操作符#
和##
控制) - 包含其他文件(由指令
#include
控制) - 产生一個错误(由指令
#error
控制)
预处理器的以下方面可以被控制:
[编辑] 脚注
- ↑ 这些是标准所定义的指令。标准没有定义其它指令的行为,他们可能被忽略,可能具有有用的功能,也可能造成一个编译错误。无论如何,当预处理结束是,预处理指令会被从源文件中移除。一个常见的非标准扩展是
#warning
,它使得编译時产生一条自定义內容的警告信息。
[编辑] 另见
预处理器的C文档
|