自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

[[385122]]

本文轉(zhuǎn)載自微信公眾號(hào)「魚(yú)鷹談單片機(jī)」,作者魚(yú)鷹Osprey。轉(zhuǎn)載本文請(qǐng)聯(lián)系魚(yú)鷹談單片機(jī)公眾號(hào)。

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

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

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

無(wú)它,既然編譯器報(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è)源代碼可能是很久以前寫的,以前編譯器可以通過(guò)這種寫法,到現(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)閉警告:

打開(kāi)配置選項(xiàng)

 

選擇 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ō)。

 

責(zé)任編輯:武曉燕 來(lái)源: 魚(yú)鷹談單片機(jī)
相關(guān)推薦

2013-04-03 13:43:22

iOS開(kāi)發(fā)Xcode屏蔽源文件編

2023-09-14 07:46:52

2025-04-08 08:20:33

2024-11-12 08:20:31

2022-12-12 08:14:47

2024-12-02 00:59:30

Spring

2025-03-06 08:21:02

判空entity對(duì)象

2025-04-22 08:20:51

2015-11-26 10:53:45

LinuxWindowsMac OS

2017-07-26 11:32:50

NETRabbitMQ系統(tǒng)集成

2021-01-19 10:35:49

JVM場(chǎng)景函數(shù)

2024-10-24 08:21:33

2020-10-16 11:48:06

服務(wù)器系統(tǒng)運(yùn)維

2018-06-24 09:27:55

線程Tomcat多線程

2025-03-11 08:20:58

2025-02-28 08:21:00

2023-10-10 13:23:18

空指針異常Java

2023-10-19 19:42:25

IstioPodkubernetes

2022-09-09 15:17:02

CentOS 7Linux

2020-08-26 07:17:19

通信
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)