C語言巨集定義

2022-09-11 06:21:12 字數 959 閱讀 5811

巨集2023年7月28日 星期四15:00

不帶引數的巨集

#include

#define count 5

void test();

int main(int argc, const char * ar**) ;

for (int i = 0; i printf("a[%i] = %i\n",i,a[i]);

//#undef count

巨集定義也有作用域:

從定義的那一行起,一直到檔案末尾

雖然預設情況下巨集定義的作用域是從定義的那一行開始,一直到檔案末尾,但是我們也可以通過對應的關鍵字提前結束巨集定義的作用域

結束巨集定義 #undef

test();

return 0;

void test()

int b[count] = ;

for (int i = 0; iprintf("b[%i] = %i\n",i,b[i]);

帶引數的巨集

#include

sum 巨集的名稱

(v1, v2) 引數,注意點 不需要寫成資料型別

v1 + v2 用於替換的內容

帶引數的巨集注意點

1.一般情況下建議寫帶引數的巨集的時候,給每個引數加上乙個()

2.一般情況下建議寫帶引數的巨集的時候,給結果也加上乙個()

#define sum(v1, v2) v1 + v2

int main(int argc, const char * ar**) {

int a = 10;

int b = 5;

int res = sum(a,b);

sum(a,b) v1 == a v2 == b

a+bint res = a+b;

int res = sum(a, b);

printf("res = %i \n",res);

return 0;

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...