#define MALLOC(quantity,type) (type* )alloc((quantity)*sizeof(type))
//#define MALLOC(size) alloc(size) //error,这里出现了重名的宏
今天在使用宏的时候,定义了两个同名不同参数列表的宏,本以为可以完美运行却出现了在出现了错误之后排查了半天才定位到这里
再复习一下C中有关宏的知识:
#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏(defined macro),下面是宏的声明方式:
#define name(parameter-list) stuff
注意,一旦出现了两个同name的宏,则就为重定义,这种宏重定义的行为是未知的,无法保证编译器一定会执行你所希望的那个宏