预处理器

来自cppreference.com
< c

Template:c/preprocessor/navbar 预处理器在翻译阶段4执行,早于代码编译。预处理的结果是单个文件,这个文件随后被传递给实际的编译器。

目录

[编辑] 指令

预处理指令控制预处理器的行为。每个指令占一行,并具有如下格式:

  • 字符#
  • 指令单词(defineundefincludeififdefifndefelseelifendiflineerrorpragma之一)[1]
  • 指令参数
  • 换行

空指令(#后接一个换行)是允许的,不产生任何效果。

[编辑] 作用

预处理器有以下作用:

  • 条件编译源文件的某些部分(由 #if, #ifdef#ifndef#else#elif#endif指令控制)
  • 宏替换文本并且可以连接标识符或将标识符转换为字符串(由#define#undef指令以及###运算符控制)
  • 包含 其他文件(由#include指令控制)
  • 产生一个错误(由#error指令控制)

预处理器的以下部分可以被控制:

[编辑] 脚注

  1. 这些是标准所定义的指令。标准没有规定其他指令的行为,它们可能被忽略,可能具有有用的功能,也可能造成一个编译错误。无论如何,当预处理结束时,它们会被删除。一个常见的非标准扩展是#warning,它使得编译时产生一条可以自定义内容的警告信息

[编辑] 另见

C++ documentation for preprocessor