使用兩種巨集定義的方法實現 得到兩個數的最小值和最值
方法一: 利用三重條件運算子
#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 注 用括號將巨集定義整個括起來,在任何時候,都是乙個好習慣。如果能寫出上邊這個巨集,你這道題的考試就能交差了,然後覺得對自己來說就是隨手一寫的事兒,那可就大錯特錯了。因為以上寫法的巨集定義,雖然也能拿到分數,但是在面試者或者筆試閱卷者看來,你也不過如此,...