帶參巨集定義的思考

2022-06-04 06:03:08 字數 556 閱讀 9679

帶有引數的巨集定義:

巨集定義是一種替換,所以返回的通常是帶有運算子表示式.不能返回語句.

通常用的一些運算子:三目運算子(代替if語句)...&&...||

特殊建議:為了保證準確性,在()中放入變數

下面是一些巨集定義的例子/

1,判斷字元是不是10進 值的

數字 #define  decchk( c ) ((c) >= '0'&& (c) <='9') 

2,判斷字元是不是16進 值的

數字 #define  hexchk( c ) ( ((c) >= '0'&& (c) <= '9') ||\ 

((c) >= 'a'' && (c) <= 'f'') ||\ 

((c) >= 'a' && (c) <= 'f') ) 

3,將乙個字母轉換為大寫 

#define  upcase( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) ) 

4.取三個數的最大值:(c)>((a)>(b)?(a):(b))?(c):((a)>(b)?(a):(b))

札記 帶參巨集定義

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

C之帶參巨集定義

1.帶參巨集定義跟前面文章有所區別,不是簡單的數值或者字串替換,是要進行引數替換。2.本人理解,帶參巨集是很方便的,一些固定輸入和輸出咱們可以選擇帶參巨集,類似工程中多出要計算兩數相乘,這種情況我們就可以使用帶參巨集。define s a,b a b qdebug 2,3 6 define pi 3...

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

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