预处理

预定义宏

名称描述
DATE当前日期,一个以 “MMM DD YYYY” 格式表示的字符常量。
TIME当前时间,一个以 “HH:MM:SS” 格式表示的字符常量。
FILE这会包含当前文件名,一个字符串常量。
LINE这会包含当前行号,一个十进制常量。
STDC当编译器以 ANSI 标准编译时,则定义为 1。

预处理器运算符

名称运算符描述
宏延续\一个宏通常写在一个单行上。但是如果宏太长,一个单行容纳不下,则使用宏延续运算符
字符串常量化#在宏定义中,当需要把一个宏的参数转换为字符串常量时,则使用字符串常量化运算符
标记粘贴##宏定义内的标记粘贴运算符,会合并左右两个参数

预处理器指令

#define 定义宏
#include 包含一个源代码文件
#undef 取消已定义的宏
#ifdef 如果宏已经定义,则返回真
#ifndef 如果宏没有定义,则返回真
#if 如果给定条件为真,则编译下面代码
#else #if 的替代方案
#elif 如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个 #if……#else 条件编译块
#error 当遇到标准错误时,输出错误消息
#pragma 使用标准化方法,向编译器发布特殊的命令到编译器中