巨集定義是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();
}
複製程式碼