C語言巨集定義

2022-03-27 04:33:12 字數 462 閱讀 5263

1 #include2 #include34/*

#是"字串化"的意思,出現在巨集定義中的#是把跟在後面的引數轉換成乙個字串 */5

#define log_error(err) fprintf(stderr, #err)67

/*"##"是一種分隔連線方式,它的作用是先分隔,然後進行強制連線. */8

#define test(type, name) type type##_##name

9#define test2(type, name) type type_##type##_name_##name

1011

void main(void)12

以上**段 test.c 經過巨集展開後的**如下:

/*

gcc -e test.c

*/void main(void

)

C語言巨集定義

c語言有很多預處理命令,如包含命令 include,巨集定義命令 define。預處理命令在程式編譯之前被編譯器處理,而巨集定義也在此時被替換。或c 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集...

C語言巨集定義

乙個巨集定義的作用域是從定義處到 undef處或檔案結尾。undef num 現在此處num沒有定義。1.ifdef num 如果num有巨集定義就編譯此處。else 如果num沒有巨集定義就編譯此處 endif 不論num 有沒有巨集都編譯,即判斷體已結束。ifndef num 如果num沒有巨集...

C語言(巨集定義)

巨集定義是c提供的三種預處理功能 巨集定義 檔案包含 條件編譯 的其中一種。c語言執行的流程 1 編譯 形成目標 obj 2 連線 將目標 與c函式庫連線合併,形成最終的可執行檔案 3 執行 巨集定義也叫做 巨集替換 預編譯指令 作用 使用define指令 1 定義標示,防止檔案重複引入 如 ifd...