#instruction | function | 备注 |
---|---|---|
#define | 定义宏,可以是常量/字符/函数 | 通过\换行,换行时不能有空行 |
## | 和#define配合使用,连接两个字符串 | |
#include | “包含”一个源代码/头文件 | #include之后的文件内容会被直接替换到这条指令处并展开,不管是头文件还是源文件 |
#undef | 取消已定义的宏 | |
#ifdef | 如果宏已经定义,则返回真 | 常用于条件编译,兼容不同平台 |
#ifndef | 如果宏没有定义,则返回真 | 常用于条件编译 |
#if | 如果给定条件为真,则下面的内容生效 | 常用于条件编译 |
#elif | #if 给定条件不为真,当前为真,则下面的内容生效 | 常用于条件编译 |
#else | #if 的替代方案,下面的内容生效 | 常用于条件编译 |
#endif | 结束一个 #if……#else 条件块 | 常用于条件编译 |
#error | 当预处理条件不满足,抛出编译错误 | |
#warning | 输出警告信息 | 一般用于legacy support warning等 |
#message | 输出消息 | 提醒程序员进行检查 |
#pragma | 这个字符串会被保留,由编译器处理特殊指令 | 支持的功能和特性取决于编译器 |