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