c 中的巨集定義 g 中引數

2021-08-25 00:27:06 字數 763 閱讀 2920

如果定義debug時才能出現的函式呼叫,那麼就可以這樣寫:

#ifdef debug #define debug(x)/ #endif #ifdef release #define debug(x)/ {}/ #endif

使用就可以直接使用debug("abc");

然後在g++或者gcc編譯時使用 g++ def.cpp -d deubg,-d 後面的是巨集定義名。

如果希望定義多參巨集:那麼函式括號中引數的變為...即可。但是個人感覺多參還是比較麻煩。如果我工程再開發階段可能需要列印一些中間值但是在發布階段這些中間值使用者應該是不需要見到的。那麼總不能一行行的新增注釋或者刪除。這就可以使用巨集:

#ifdef debug #include #define _debugp_ printf //定義為printf函式 #define _debug_(code) code //這裡可以輸出code #else #define _debugp_ // // 將其注釋掉 /printf #define _debug_(code) // //注釋掉注意這裡只能寫 //,在一行寫會被注釋的。 /code #endif

如果希望可以使用gdb除錯程式資訊,需要在g++後新增-g引數。

g++ -g -o read read.cpp這個語句中-g與-o的位置不能顛倒,否則會有錯誤。最好-o這個引數在最後新增。否則很有可能將過去的原始檔刪除。這個命令就可以寫為g++ -g read.cpp -o read

另外.h檔案和.cpp應該是配套使用的。否則其他.cpp檔案找不到該標頭檔案定義的全域性變數。

c 中的巨集定義 g 中引數

如果定義debug時才能出現的函式呼叫,那麼就可以這樣寫 ifdef debug define debug x endif ifdef release define debug x endif 使用就可以直接使用debug abc 然後在g 或者gcc編譯時使用 g def.cpp d deubg,...

巨集定義中引數使用

1.巨集傳遞變長引數 最近用c語言寫乙個程式,經常呼叫shell或者其他命令,中多處出現如下 char script cmd cmd max len 1 memset script cmd,0,sizeof script cmd sprintf script cmd,cmd s s param1,p...

c 中的巨集定義

一 不帶引數的巨集定義 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集展開 將巨集名替換為字串。掌握 巨集 概念的關鍵是 換 一切以換為前提 做任何事情之前先要換,準確理解之前就要 換...