预处理器
来自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
|