引言

C预处理器(C Preperocessor cpp)主要处理代码中的预处理命令,在编译器之前执行---简单的文本替换,替换后会生成对应的.i文件

重要的预处理命令:---嵌入式开发常用

#include 导入库文件
#define 定义宏---定义常量,字符串,数据类型的别名
#undef 取消已定义的宏
#ifdef 如果宏已经定义,返回真
#ifndef 如果宏没有定义,返回真
#if 如果给定条件为真,则编译下面的代码
#else #if搭配使用
#elif #if配套使用
#endif 结束#if...#elif...#else条件编译块
#error 遇到标准错误(stderr)时,输出错误消息
#pragma 使用标准化方法向编译器发布特殊的命令到编译器中---做出特殊操作

预定义宏

在ANSI C中定义,可以直接使用

DATE 当前日期,格式:MMM DD YYYY
TIME 当前时间,格式:HH:MM:SS
FILE 包含当前文件名,字符串常量
LINE 包含当前行号,十进制常量
STDC 编译器以ANSI标准编译时,定义为1

预处理器运算符

\---宏延续运算符---可以在下一行写入宏的内容

#---字符串常量化运算符---将宏的参数转化为字符串常量

##---标记粘贴运算符---在宏定义中两个独立的标记被合并为一个标记---qwq##233;//将qwq和233合为一个标记符

参数化的宏

可以将一个简单的函数作为一个宏,不过要注意运算的顺序

ex

#define Max(x,y) ((x)>(y)?(x):(y));