1.#define与#include在预处理时的不同作用?
答:#define是对文件内容进行查找替换,#include是将引用的头文件进行复制粘贴进当前文件。
2.参数宏的用法与注意事项?
答:在define标识后不要加’,‘除非你要替换的语句本来就要加’,‘
#define ADD(A,B) A + B
#define SIZEOF(ARR) sizeof(ARR)/sizeof(ARR[0])
3.举例:宏的嵌套定义是什么?
宏的嵌套定义:宏套宏
#define PRINT printf("hello world!");
#define P5 PRINT PRINT PRINT PRINT PRINT
#define P10 P5 P5
4.宏定义类型与typedef定义类型的区别?
宏定义类型只是简单的文本替换
typedef是对类型的重命名
#define D_P_INT int*
typedef int* P_INT;
int* m1, m2, m3;//只有m1是int*,m2,m3是int
D_P_INT m1, m2, m3;//只有m1是int*,m2,m3是int
P_INT n1, n2, n3;//全部为int*类型
这里 D_P_INT 替换的是 int* 所以第二行与第一行效果相同,而typedef是对类型的重命名所以第三行定义的所有变量都是int*.