試定義乙個帶引數的巨集swap(a,b),以實現兩個整數之間的交換,並利用它將一維陣列a和b的值進行交換。
#include
#define swap(a,b)
intmain
(void
)printf
("\n請輸入陣列 b:\n");
for(
int j =
0; j <
10; j++
)//輸出陣列a,b
printf
("\n陣列a是:\n");
for(
int i =
0; i <
10; i++
)printf
("\n陣列b是:\n");
for(
int j =
0; j <
10; j++
)//使用巨集定義函式swap
for(
int i =
0; i <
10; i++
)//輸出互換後的陣列a,b
printf
("\n現在陣列a是:\n");
for(
int i =
0; i <
10; i++
)printf
("\n現在陣列b是:\n");
for(
int j =
0; j <
10; j++
)return0;
}
1.對帶引數的巨集的展開只是將語句中的巨集名後面括號內的實參字串代替#define命令列中的形參。
2.在巨集定義時,在巨集名與帶引數的括號之間不可以加空格,否則將空格以後的字元都作為替代字串的一部分。
3.在帶參巨集定義中,形式引數不分配記憶體單元,因此不必作型別定義。
nullnull用巨集定義swap(x,y)
之前一直在查詢nullnull之類的問題,今天正好有機會和大家共享一下.方法1 define swap x,y x x y y x y x x y 方法2 define swap x,y x x y y x y x x y 每日一道理 即使青春是一枝嬌豔的花,但我明白,一枝獨放永遠不是春天,春天該是...
C語言的巨集定義怎麼用 巧用C語言巨集定義
例如 中多個地方使用當前時間作為字串,如果不使用巨集定義,中如果有十個地方使用了當前時間這個字串,那麼我每一次編譯 都要修改十個地方,但是如果我使用了巨集定義 define current time 14 30 char time current time printf current time i...
用do while進行複雜的巨集定義
在很多比較複雜的巨集定義中,經常可以看到整個介面被一層do while 0 給包了起來 define foo x dowhile 0 這樣定義的是乙個非復合語句,可以確保在類似下面這種情況 if foo x else 可以順利展開,展開後的結果被do while包了起來 if do while 0 ...