18 用巨集定義實現 得到兩個數的最值

2021-08-28 18:31:00 字數 785 閱讀 4117

使用兩種巨集定義的方法實現 得到兩個數的最小值和最值

方法一: 利用三重條件運算子

#include #define min(a,b) ( (a) > (b) ? (b) : (a) )

#define max(a,b) ( (a) > (b) ? (a) : (b) )

int main(void)

值得關注的是:

1 .  巨集定義的變數在引用的時候,用 ()括起來,防止預處理器展開的錯誤。

2 . (a > b ?   action1 :  action2 ) 這樣的方式和 if —else 結果一樣,但他會使得編譯器產生更優化的**,這在嵌入式程式設計中比較重要。

方法二: typeof 關鍵字

#include #define mix(x,y) () 

#define max(x,y) ()

int main(int argc, char const *argv)

值得借鑑的是:

1 . typeof  關鍵字 用於獲得變數的資料型別 。

2 . 巨集定義的實現,用 作為巨集整體,裡面是乙個**塊,語句用 ; 隔開 。

3 . 當巨集的實現長度很長的時候,使用換行符    \  換到下一行 。

4 . 使用輸入資料的型別定義區域性變數 x_ 和 y_ 實現對原始資料的保護。

5 . 巨集實現,不能用 ; 結尾

如何實現兩個數交換的交換以及巨集定義的編寫

語句實現方法 方法1 不使用中間變數 利用位運算子 a a b b a b a a b a b a b 不用考慮越界問題 解釋 對於a a 0,a 0 a a a b b a b a b b a b b a 0 a 交換律 a a b a b a a a b b 結合律,並且有a a b,a b 不...

用函式實現兩個數的交換(指標)

define crt secure no warnings include include void swap int pa,int pb int main 不知道大家是否注意到,在定義函式時,並非將a,b的值賦給了形參,而是將a,b的位址付賦給了整形的指標變數 pa和 pb,這是因為在將實參傳給形...

用乙個巨集實現求兩個數中的最大數

define max x,y x y x y 注 用括號將巨集定義整個括起來,在任何時候,都是乙個好習慣。如果能寫出上邊這個巨集,你這道題的考試就能交差了,然後覺得對自己來說就是隨手一寫的事兒,那可就大錯特錯了。因為以上寫法的巨集定義,雖然也能拿到分數,但是在面試者或者筆試閱卷者看來,你也不過如此,...