7.一個(gè)”標(biāo)準(zhǔn)”宏MAX,輸入兩個(gè)參數(shù)并返回較大的一個(gè)(經(jīng)典寫(xiě)法+Linux內(nèi)核寫(xiě)法)
2023-08-23 10:23 作者:踏星赴夢(mèng) | 我要投稿
1.比較兩個(gè)數(shù)大小返回最大值的經(jīng)典宏寫(xiě)法(注意細(xì)節(jié),要加入括號(hào)):
2.Linux內(nèi)核的實(shí)現(xiàn)方法
在GNU C 語(yǔ)言中,如果知道a和b的類(lèi)型,可以在宏里面定義一個(gè)變量,將a和b分別賦值給變量,然后在進(jìn)行比較:
如果不知道具體的數(shù)據(jù)類(lèi)型,就要使用typeof類(lèi)轉(zhuǎn)換宏,Linux內(nèi)核中的例子如下:
一個(gè)需要注意的問(wèn)題,下述代碼的作用是什么:
(1)首先&_a == &_b 是對(duì)_a和_
①兩個(gè)地址相比的bool值沒(méi)有被引用的警告(該警告被(void)object;消除)
②兩個(gè)地址類(lèi)型不一樣,進(jìn)行比較時(shí)Linux會(huì)給出類(lèi)型不一致警告,該警告作為有用警告
(4)要注意,C語(yǔ)言中地址包含兩類(lèi)信息
變量存放在什么地方(位置信息,或者說(shuō)內(nèi)存編號(hào)/純地址)
②地址類(lèi)型:
標(biāo)簽: