C之帶參巨集定義

2021-10-06 23:51:06 字數 818 閱讀 4942

1.帶參巨集定義跟前面文章有所區別,不是簡單的數值或者字串替換,是要進行引數替換。

2.本人理解,帶參巨集是很方便的,一些固定輸入和輸出咱們可以選擇帶參巨集,類似工程中多出要計算兩數相乘,這種情況我們就可以使用帶參巨集。

#define s(a,b) a*b

qdebug()

<2,3)

;//6

#define pi 3.1415926

#define s(r) pi*r*r

qdebug()

<2)

;#define pi 3.1415926

#define create(r,l,s,v) l=2*pi*r; s=pi*r*r; r=l*s*r; v=4.0/2.0*pi*r*r;

int a=

2,b=

3,c=

4,d=5;

create

(a,b,c,d)

;qdebug()

<< a<< b << c << d;

//288 12 12 521152

說明:

1通過以上兩種形式我們可以演變很多種帶參巨集,這裡說明一點,如果帶參巨集比較複雜一定利用()來區分好優先順序。

2.我們也可以通過這樣的巨集得到多個結果,所以說明巨集還是非常強大的,大家可以試利用巨集自動建立set函式和get函式,下篇文章我們分享。

「越樸素單純,就越有內在的芳香。」

札記 帶參巨集定義

1 帶參巨集定義中,巨集名和形參表之間不能有空格出現 2 巨集定義中不存在值傳遞,它只是乙個符號的替換過程 3 帶參巨集定義中,形參不分配記憶體空間,因此不必做型別定義 define max a,b a b a b void main void 4 在巨集定義中的形參是識別符號,而巨集呼叫中的實參可...

帶參巨集定義的思考

帶有引數的巨集定義 巨集定義是一種替換,所以返回的通常是帶有運算子表示式.不能返回語句.通常用的一些運算子 三目運算子 代替if語句 特殊建議 為了保證準確性,在 中放入變數 下面是一些巨集定義的例子 1,判斷字元是不是10進 值的 數字 define decchk c c 0 c 9 2,判斷字元...

帶參巨集定義的正確標準定義

include define add x x x define add x x x 正確標準定義 int main int m 1,n 2,k 3 int sum add m n k int sum m n m n k 實際替換 int sum add m n k 預期目的 printf sum d...