iOS開發 開啟 關閉編譯器警告

2022-08-31 21:00:11 字數 1042 閱讀 8358

,關閉標識為-wno...

-wall並不是所有警告。這乙個警告組開啟的是編譯器開發者對於「你所寫的**中有問題」這一命題有著很高的自信的那些警告。要是在這一組設定下你的**出現了警告,那基本上就是你的**真的存在嚴重問題了。但是同時,並不是說開啟wall就萬事大吉了,因為wall所針對的僅僅只是經典**庫中的為數不多的問題,因此有一些致命的警告並不能被其捕捉到。但是不論如何,因為wall的警告提供的都是可信度和優先順序很高的警告,所以為所有專案(至少是所有新專案)開啟這組警告,應該成為一種良好的習慣。

-wextra如其所名,-wextra組提供「額外的」警告。這個組和-wall組幾乎一樣有用,但是有些情況下對於**相對過於嚴苛。乙個很常見的例子是,-wextra中包含了-wsign-compare,這個警告標識會開啟比較時候對signed和unsigned的型別檢查,當比較符兩邊一邊是signed一邊是unsigned時,產生警告。其實很多**並沒有特別在意這樣的比較,而且絕大多數時候,比較signed和unsigned也是沒有太大問題的(當然不排除會有致命錯誤出現的情況)。需要注意,-wextra和-wall是相互獨立的兩個警告組,雖然裡面開啟的警告標識有個別是重複的,但是兩組並沒有包含的關係。想要同時使用的話必須在other c flags中都加上.

-weverything這個是真正的所有警告。但是一般開發者不會選擇使用這個標識,因為它包含了那些還正在開發中的可能尚存bug的警告提示。這個標識一般是編譯器開發者用來除錯時使用的,如果你想在自己的專案裡開啟的話,警告一定會爆棚導致你想開始撞牆..

針對特定檔案開啟/關閉「build phases」 -> 「compile sources」,在指定檔案的「compiler flags」新增標識

針對特定**行開啟/關閉

1

#pragma clang diagnostic push

2#pragma clang diagnostic ignored "-wunused-variable" 34

#pragma clang diagnostic pop

一般編譯器錯誤 c 的好習慣 開啟編譯器警告

我在半年之前開始用c 來做一些演算法開發並且部署到專案中,因為寫的演算法會被頻繁呼叫,所以需要保證用c 寫出正確,簡潔,高效的演算法 我知道現在的演算法工程師大多都是從python入門的,對c 並不是特別熟悉,甚至有許多跟我一樣,從別的專業轉行的演算法。但是無論如何,演算法工程師首先是個工程師,必須...

編譯器警告和錯誤詳解

原文 1.warning 550 d variable d was set but never used 描述 變數 d 定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.解決 仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試...

keil MDK編譯器警告和錯誤詳解

1.warning 550 d variable d was set but never used 描述 變數 d 定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.解決 仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試用vo...