预处理器
来自cppreference.com
< c
Template:c/preprocessor/navbar 预处理器在翻译阶段4执行,早于代码编译。预处理的结果是单个文件,这个文件随后被传递给实际的编译器。
目录 |
[编辑] 指令
预处理指令控制预处理器的行为。每个指令占一行,并具有如下格式:
- 字符
# - 指令单词(
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++ documentation for preprocessor
|