宏是种预处理的命令,即用一个标识符取代后面的一串语句。宏可以实现C的参数多态,即参数为类型。C的预处理除了宏还有文件包含和条件编译。
#include<stdio.h>
#define Compare(T1,T2) T1 Compare_##T1##_##T2(T1 m,T2 n){ return m+n; }
Compare(int,double);
int main()
{
int i=Compare_int_double(1,2.0);
printf("%d", i);
}
其中定义了宏compare,它的参数是类型。以上语句相当于:
int Compare_int_double(int m,double n){return m+n;}
int main()
{
int i= Compare_int_double(1,2.0)
printf("%d",i);
}
宏是种标识替换的作用。
预处理是在通常的编译之后进行的。预处理将标识重新置换,在进行通常的编译过程。