预处理器

来自cppreference.com
< cpp
 
 
C++语言

|- class="t-nv-h1" | colspan="5" | 一般主题 |- | |- |

预处理器
注释

|

|-

|- class="t-nv-h1" | colspan="5" | 流程控制 |-

条件执行语句

| |- |

|

|-

循环语句

| |- |

|

|-

跳转语句

| |- |

|

|-

|- class="t-nv-h1" | colspan="5" | 函数 |-

函数声明 Lambda函数声明 inline说明符 异常说明符 (已弃用) noexcept说明符 (C++11)

|- class="t-nv-h1" | colspan="5" | Exceptions |- | |- |

|

|-

|- class="t-nv-h1" | colspan="5" | 命名空间 |- | |- |

|

|-

|- class="t-nv-h1" | colspan="5" | 类型 |- | |- |

|

|-

说明符

| |- |

decltype (C++11)
auto (C++11)
alignas (C++11)

|

|-

存储持续期说明符 Initialization

| |- |

|

|-

|- class="t-nv-h1" | colspan="5" | 表达式 |- | |- |

值类别
求值顺序

|

|-

替代表示 字面量 布尔型 - 整型 - 浮点型 字符型 - 字符串 - nullptr (C++11) 用户定义 (C++11)

|- class="t-nv-h1" | colspan="5" | Utilities |-

属性 (C++11) Types typedef声明 类型别名声明 (C++11) Casts 隐式类型转换 - 显示类型转换 static_cast - dynamic_cast const_cast - reinterpret_cast 内存分配

| |- |

|

|-

|- class="t-nv-h1" | colspan="5" | 类 |- | |- |

|

|-

类特有的函数属性

| |- |

|

explicit (C++11)
static

|-

静态成员函数

| |- |

|

|- |- class="t-nv-h1" | colspan="5" | 模板 |- | |- |

|

|- |- class="t-nv-h1" | colspan="5" | 杂项 |- | |- |

|

|-

 
 

预处理器发生在编译之前,在翻译阶段四运行,其结果将作为一个单独的文件传送给真正的编译器进行编译。

目录

[编辑] 指令

预处理指令控制预处理器的操作。每个指令占据一行并且具有如下的格式:

空指令(#后跟一个换行符)是合法的,并且不产生任何具体效果。

[编辑] 功能

预编译器在源文件翻译中有如下的功能:

预处理器的以下方面可以被控制:

[编辑] 脚注

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

[编辑] 另见

C语言文档 for 预处理器
来自“http://zh.cppreference.com/mwiki/index.php?title=cpp/preprocessor&oldid=39091