采用命令 #define 来定义宏
预处理器会分析源文件,把它们转换为预处理器记号和空白符。如果遇到的记号是宏名称,预处理器就会展开(expand)该宏;也就是说,会用定义的文本来取代宏名称。出现在字符串字面量中的宏名称不会被展开,因为整个字符串字面量算作一个预处理器记号。
没有参数的宏
#define 宏名称 替换文本
带参数的宏
定义具有形式参数(简称“形参”)的宏。
当预处理器展开这类宏时,它先使用调用宏时指定的实际参数(简称“实参”)取代替换文本中对应的形参。带有形参的宏通常也称为类函数宏(function-like macro)。
#define 宏名称( [形参列表] ) 替换文本
#define 宏名称( [形参列表 ,] … ) 替换文本
在宏内使用宏
宏的作用域和重新定义
预编译器内置的宏
https://blog.csdn.net/Bluechalk/article/details/82490863
常用的几个:
ANSI标准说明了五个预定义的宏名。它们是: LINE FILE DATE TIME STDC 如果编译不是标准的,则可能仅支持以上宏名中的几个,或根本不支持。记住编译程序 也许还提供其它预定义的宏名。 是行连接符,会将下一行和前一行连接成为一行,即将物理上的两行连接成逻辑上的一行 FILE 是内置宏 代表源文件的文件名 LINE 是内置宏,代表该行代码的所在行号 DATE__宏指令含有形式为