C语言复习(七)---C预处理器
引言
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));

浙公网安备 33010602011771号