C巨集定義常見用法與條件編譯

2021-08-04 10:56:35 字數 977 閱讀 9836

#

在c語言的巨集中,#的功能是將其後面的巨集引數進行字串化操作(stringfication),簡單說就是在對它所引用的巨集變數 通過替換後在其左右各加上乙個雙引號。

##

##被稱為連線符(concatenator),用來將兩個token連線為乙個token。

關於…的使用

…在c巨集中稱為variadic macro,也就是變參巨集。

do while (0) 在巨集定義中的作用

linux和其它**庫里的巨集都用do/while(0)來包圍執行邏輯,因為它能確保巨集的行為總是相同的,而不管在呼叫**中使用了多少分號和大括號。

條件編譯

#ifndef d1

printf("d1111111111111111111\n");

#else

printf("others\n");

#endif

#if test

printf("1111111111111\n");

#else

printf("2222222222222222");

#endif

#if 1

#endif

防止標頭檔案重複包含

#ifndef _somehead_h_

#define _somehead_h_

//函式的宣告

#endif // !_somehead_h_

日誌列印

printf("file = %s\nline = %d\n", __file__, __line__);
參考:

c語言巨集定義##連線符和#符的使用

do while (0) 在巨集定義中的作用

C語言巨集定義之條件編譯

4 條件編譯命令 有幾個命令可對程式源 的各部分有選擇地進行編譯,該過程稱為條件編譯。商業軟體公司廣泛應用條件編譯來提供和維護某一程式的許多顧客版本。if else,elif及 endif if的一般含義是如果 if後面的常量表示式為true,則編譯它與 endif之間的 否則跳過這些 命令 end...

C 巨集定義命令和條件編譯命令

預處理命令包含 檔案嵌入命令 巨集定義命令和條件編譯命令 檔案嵌入命令就是我們常用的include,這裡只說一句 include include a 先從系統提供的include目錄中搜尋,系統提供的用 先從當前目錄中查詢,再去include目錄搜尋,自己寫的用 減少搜尋時間 巨集定義命令又稱巨集替...

預處理 巨集定義 條件編譯

可以用 define命令將乙個指定的識別符號 即巨集名 來代表乙個字串 巨集定義語法 define 巨集名 字串 使用原則 1 原樣替換 2 不能代替函式 3 定義時字尾不要加分號。帶引數的巨集定義 include define s a,b a b 注意,此處不能加分號,否則就變成了s a b in...