最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

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)):

這種經(jīng)典寫(xiě)法也是有問(wèn)題的:如果傳入的參數(shù)分別是i++和j++,這個(gè)比較大小就會(huì)出錯(cuò),i++和j++在宏展開(kāi)的時(shí)候會(huì)出現(xiàn)在多個(gè)地方,i和j會(huì)自增多次

如:

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和_b取地址進(jìn)行比較,然后得到一個(gè)bool值,在這個(gè)宏之中,大概率是false;

(2)然后對(duì)這個(gè)bool值進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,也就是對(duì)這個(gè)無(wú)意義的變量進(jìn)行引用操作,消除該變量沒(méi)有被引用的警告;

(3)給出有用的警告:

①兩個(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)型:所指向的數(shù)據(jù)的類(lèi)型信息





7.一個(gè)”標(biāo)準(zhǔn)”宏MAX,輸入兩個(gè)參數(shù)并返回較大的一個(gè)(經(jīng)典寫(xiě)法+Linux內(nèi)核寫(xiě)法)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
泰宁县| 友谊县| 阳曲县| 泊头市| 交城县| 赤壁市| 克什克腾旗| 西峡县| 日喀则市| 治多县| 徐汇区| 上蔡县| 巢湖市| 新源县| 邵阳市| 绥江县| 朝阳市| 延边| 绥芬河市| 鄂托克旗| 台南县| 德格县| 峨边| 宁都县| 平阴县| 永顺县| 乌什县| 大兴区| 新民市| 赤城县| 红原县| 永善县| 武山县| 当涂县| 时尚| 黄石市| 西安市| 城步| 佛冈县| 石棉县| 垫江县|