C C 常用巨集

2021-06-18 02:47:10 字數 510 閱讀 2960

__line__

__file__

__date__

__time__

__stdc__

__timestamp__

20、巨集定義防止錯誤使用小括號包含。

例如:有問題的定義:#define dump_write(addr,nr)

應該使用的定義: #difne do(a,b) dowhile(0)

例如:if(addr)

dump_write(addr,nr);

else 

do_somethong_else();

巨集展開以後變成這樣:

if(addr)

;else

do_something_else();

gcc 在碰到else前面的「;」時就認為if語句已經結束,因而後面的else不在if語句中。而採用do{} while(0)的定義,在任何情況下都沒有問題。而改為 #difne do(a,b) dowhile(0) 的定義則在任何情況下都不會出錯。

C C 常用預定巨集

cplusplus 如果源 是cpp,則 cplusplus定義為1,如果源 是c,則 cplusplus就是未定義.舉例 cpp檔案中使用到了c檔案實現的函式,為了避免連線錯誤,需要使用extern c 宣告。ifdef cplusplus extern c endif date 11個字元的字串...

C,C 巨集中 和

巨集中的 的功能是將其後面的巨集引數進行字串化操作 stringizing operator 簡單說就是在它引用的巨集變數的左右各加上乙個雙引號。如定義好 define string x x之後,下面二條語句就等價。char pchar hello char pchar string hello 還...

C C 中 和 巨集

在c語言 c 中,巨集 macro 是屬於編譯時期 而非執行時期 的概念,採用關鍵字define進行定義。它只是一種簡單的字串替換,根據是否帶引數分為無參和帶參。它的作用還是很大的,比如 提高可移植性,可讀性,方便性 等等,常見就是替換變數,防止重複包含標頭檔案等 define max 10 ifn...