使用宏函数优势
1、简化程序的编写
2、宏是由编译器解析和替换的,宏里面可以不用写类型
声明方式:
#define MAX(A,B) A>B?A:B
#define LOOP(TO,FROM,CONTENT) \
for(int index=TO;index<=FROM;index++){ \
CONTENT; \
}
调用方式:
printf("max value is %d\n",MAX(4,5));
LOOP(1,10,printf("content is %d \n",index));
宏函数参数连接
1、使用宏函数参数连接是为了避免导入多个库的时候有相同名称的方法引起方法冲突
使用方式:
#define callLinked(NAME) wyd##NAME()
void wydlinked(){
printf("name is %s/n","wyd");
}
调用方式:
callLinked(linked);
宏函数可变参数
使用方式:
#define LOG(LEVEL,FORMAT,...) printf(LEVEL); printf(FORMAT,__VA_ARGS__);
#define LOG_E(FORMAT,...) LOG("ERROR:",FORMAT,__VA_ARGS__);
调用方式:
LOG_E("args is %s \n","null");