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

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

如何優(yōu)雅的屏蔽別人的警告

2021-03-04 12:05 作者:技術(shù)流阿宅  | 我要投稿

免責(zé)聲明:

文章來(lái)源:公眾號(hào)【魚(yú)鷹談單片機(jī)】

作者:魚(yú)鷹Osprey

ID :emOsprey


或許剛?cè)腴T(mén)的小菜鳥(niǎo)都會(huì)被學(xué)長(zhǎng)告知,警告不用管,沒(méi)有錯(cuò)誤就行!


正是這一句話,導(dǎo)致很多初學(xué)者都不會(huì)注意警告問(wèn)題。


魚(yú)鷹當(dāng)時(shí)也是這樣被教育的,但沒(méi)聽(tīng)。


既然編譯器報(bào)出了警告,那就說(shuō)明有不合理的地方,肯定可以想辦法解決的。所以,不管是警告還是錯(cuò)誤,魚(yú)鷹都會(huì)一個(gè)個(gè)上網(wǎng)尋找解決方案,因此,魚(yú)鷹的工程基本都是 0 警告,0錯(cuò)誤(當(dāng)然 0 錯(cuò)誤是必須的,不然無(wú)法生成目標(biāo)文件)。


最常見(jiàn)的警告是有個(gè)函數(shù)沒(méi)有聲明,或者有個(gè)變量聲明了沒(méi)有使用,這里介紹一種快速解決該警告的方法:

函數(shù)沒(méi)有聲明:

這樣,只要在使用前聲明即可(C99模式)。雖然不是很規(guī)范,但這是最快解決該類警告的方式,比每次編譯跳出一堆警告好得多了。


變量沒(méi)有使用,一般是打印需要或者調(diào)試需要,定義了變量,沒(méi)有使用或者僅僅是賦值,沒(méi)有讀取該變量的操作,此時(shí)可以采用如下方式解決:

這兩種警告確實(shí)無(wú)傷大雅,但有些警告如果你不關(guān)注的話,程序運(yùn)行異常是很正常的事情(比如函數(shù)沒(méi)有定義),所以魚(yú)鷹的建議是 0 警告,這樣,每次編譯跳出警告時(shí),你都可以快速定位這個(gè)是不是自己新改代碼的警告,同時(shí)可以發(fā)現(xiàn)自己代碼隱藏的問(wèn)題。


那么,如果別人實(shí)在是不愿意處理警告又該如何呢?

在稍大一些的項(xiàng)目,一般都是由多人合作開(kāi)發(fā)的,如果同事上傳的代碼存在警告,而他又一直沒(méi)有處理,同時(shí)你自己又不能隨便修改別人的代碼。


你在開(kāi)發(fā)時(shí),每次跳出一個(gè)警告,你都要看一下這個(gè)警告是不是自己代碼產(chǎn)生的(強(qiáng)迫癥),而代碼修改、編譯是常有的事情,這樣勢(shì)必影響自己的開(kāi)發(fā)進(jìn)度。


還有一種情況是,使用別人的開(kāi)源代碼,這個(gè)源代碼可能是很久以前寫(xiě)的,以前編譯器可以通過(guò)這種寫(xiě)法,到現(xiàn)在的編譯器可能就無(wú)法通過(guò)了,但同時(shí)你測(cè)試發(fā)現(xiàn),這些警告不會(huì)影響功能。


那么是否可以屏蔽這些文件的警告呢?

有些人在工程里面直接屏蔽了所有警告:

這對(duì)于其他需要警告來(lái)保證開(kāi)發(fā)效率的人來(lái)說(shuō),這就是災(zāi)難,因?yàn)榍懊骠~(yú)鷹說(shuō)過(guò),一些警告不可忽視。


還有一種稍好一些的是屏蔽部分特定警告:

但是這些配置都會(huì)對(duì)整個(gè)工程產(chǎn)生作用,是否有一種更好的方法,只屏蔽部分文件,其他文件的警告不受影響呢?


事實(shí)上,MDK軟件已經(jīng)提供了這個(gè)功能。前面提到的那種對(duì)整個(gè)工程設(shè)置的方式是最常用的,接下來(lái)還有兩種不是很常用的:


1、對(duì)某個(gè)文件關(guān)閉警告:

選擇 C/C++ 選項(xiàng)卡

此時(shí),你可以看到熟悉的配置選項(xiàng),按照需要配置即可。

并且這些配置只針對(duì)一個(gè)文件有效果,對(duì)其他文件不起作用。


2、對(duì)某個(gè)文件夾關(guān)閉警告:

MDK 使用了虛擬文件夾,雖然不存在于實(shí)際文件系統(tǒng)中,但方便我們管理工程文件,同時(shí)也給了我們配置該文件夾的可能。


這樣,如果有太多文件需要關(guān)閉警告,我們可以將其整合在一塊,一次性關(guān)閉這些文件的警告(比如將有警告的開(kāi)源代碼放一起)。

當(dāng)然,我們也可以據(jù)此來(lái)關(guān)閉某些特定警告,而不必將所有警告都關(guān)閉了,方法和對(duì)整個(gè)工程配置那里類似。


除此之外,我們還可以通過(guò)在代碼中添加特定內(nèi)容來(lái)達(dá)到消除警告的目的,比如(一般這種代碼如果沒(méi)有使用的話,將產(chǎn)生警告,只能屏蔽它):

或者明確指定該代碼不應(yīng)該發(fā)出某種警告。

因?yàn)檫@些內(nèi)容魚(yú)鷹也用的不是很多,就不再細(xì)說(shuō)。


如何優(yōu)雅的屏蔽別人的警告的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
丰原市| 光泽县| 达日县| 乌海市| 三台县| 兴海县| 封开县| 潼南县| 嘉义县| 子长县| 瑞安市| 永登县| 张家港市| 侯马市| 孟村| 云南省| 邢台县| 景泰县| 涞源县| 枞阳县| 宁安市| 北碚区| 盐池县| 通州市| 阿克陶县| 皮山县| 玉溪市| 漯河市| 德化县| 定远县| 赣榆县| 弥渡县| 仁怀市| 蓝田县| 新兴县| 富蕴县| 惠东县| 遵义市| 昌吉市| 明光市| 上高县|