C中的宏分为两类,对象宏(object-like macro)和函数宏(function-like macro)。对于对象宏来说确实相对简单,但却也不是那么简单的查找替换。对象宏一般用来定义一些常数,举个例子:
#define M_PI 3.14159265358979323846264338327950288
#define
关键字表明即将开始定义一个宏,紧接着的M_PI
是宏的名字,空格之后的数字是内容。类似这样的#define X A
的宏是比较简单的,在编译时编译器会在语义分析认定是宏后,将X替换为A,这个过程称为宏的展开。比如对于上面的M_PI
直接使用。