C語言中關於巨集定義的一點總結

2021-07-23 18:12:07 字數 932 閱讀 5784

1、常見的巨集定義語句有不帶引數的巨集定義和帶引數的巨集定義兩種

2、帶引數的巨集定義,在比較複雜時,往往通過\字元進行換行分割,來使其更加清晰。

比如:

#include #include #define func(a, b) \

printf("the add of "#a" and "#b" is %d\n", ((a)+(b)))

int main()

3、#符號的作用

在巨集定義語句中,該符號有特殊的作用,其功能相當於將巨集引數格式化輸出為字串。在上述**中,其最終的結果為:

the add of m and n is 50

注意:在使用該符號時,要在兩邊加雙引號,這樣才能得到預期的結果。

4、##符號的作用

在巨集定義語句中該符號為巨集連線符,用來連線變數名。

#include #include #define func(a, b) \

printf("%d\n", a##b)

int main()

在上述**中,m和n被連線為mn,又因為mn已經被定義為了50,所以最後輸出50。

5、關於可變引數巨集

可變引數巨集的呼叫形式,常有以下兩種:

#define debug(...) printf( __va_args__)

#include #include #define debug(...)  printf(__va_args__)

int main()

輸出結果通printf一致

#define debug(arg...) printf(arg) 這種表達形式同上述形式一致,相當於給巨集可變引數起了個名字,但是這麼寫可讀性更強並且更容易進行描述。

以上兩種方式均跟具體的編譯器相關。

C語言中關於巨集 的使用,注意一點

文章 首先已知 define a hello define b world 如何使用巨集a,b表示出字串 helloworld 答案1 define c a b 答案2 define c a,b a b define c a,b c a,b 答案1驗證 例如使用巨集預編譯案例 include def...

C語言中巨集函式定義的注意點

要寫好c語言,漂亮的巨集定義是非常重要的。巨集定義可以幫助我們防止出錯,提高 的可移植性和可讀性等。定義巨集函式handle error value define handle error value if cudastatus value 最近使用到巨集函式定義遇到兩個坑,以後要注意。首先 當巨集...

c 語言中的巨集定義

巨集定義 巨集定義是c提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯 1.不帶引數的巨集定義 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的 符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集展開 將巨...