宏定义是C提供的三种预处理功能(宏定义、文件包含、条件编译)的其中一种。
C语言执行的流程: 1、编译:形成目标代码(.obj) 2、连接:将目标代码与C函数库连接合并,形成最终的可执行文件 3、执行
宏定义也叫做:宏替换、预编译指令
作用: 使用define指令 1、定义标示,防止文件重复引入 如:#ifdef __cplusplus 标识支持C++语法
2、定义常数(便于修改与阅读)
#define MIN 60
void main(){
int i = 100;
if (i > MIN){
printf("比MIN大..");
}
getchar();
}
复制代码
###宏函数
void test_read(){
printf("read\n");
}
void test_write(){
printf("write\n");
}
//NAME是参数
#define jni(NAME) test_##NAME();
void main(){
jni(write);//替换:write();
getchar();
}
复制代码
void read(){
printf("read\n");
}
void write(){
printf("write\n");
}
//NAME是参数
#define jni(NAME) NAME();
void main(){
jni(read);//替换:read();
getchar();
}
复制代码
#define LOG(LEVEL,FORMAT,...) printf(##LEVEL); printf(##FORMAT,__VA_ARGS__);
#define LOG_I(FORMAT,...) LOG("INFO:",##FORMAT,__VA_ARGS__);
#define LOG_E(FORMAT,...) LOG("ERROR:",##FORMAT,__VA_ARGS__);
#define LOG_W(FORMAT,...) LOG("WARN:",##FORMAT,__VA_ARGS__);
void main(){
LOG_E("%s%s", "name:", "xiaoming");
getchar();
}
复制代码