編譯時的 warning

2021-05-03 22:02:07 字數 543 閱讀 3755

warning其實可以分為兩種:一種是可以忽略的,一種是不可以忽略的。

比如:int被看作bool的warning往往是不能忽略的,而myclass*被轉換成int的warning都是可忽略的。

#pragma warning(disable: ***x)可以顯式的忽略那些確定不會造成惡劣影響的warning。比如vc編譯器在編譯stl時候的一些warning。只有把那些可以忽略的 warning都忽略之後,那些必須處理的warning才能從眾多的warning當中過濾出來。

有時候情況會比較複雜,需要區別對 待。比如signed和unsigned的區別,就是比較複雜的情況,int i = vector.size()通常不要緊,但是int i = reccount卻未必是安全的。因此,我們應該對於安全的warning可以如下寫**:int i = (int)vector.size(),這樣做了之後,後面那個需要判斷處理的signed和unsigned問題就會浮現出來。

如果不努力去消除那些「可以忽略的warning」,那麼最後的結果必然是warning太多,而導致所有的warning都被程式設計師所忽視。

關於檢視pip列表時所報的warning

在終端輸入 pip3 list發現竟會報出乙個警告 deprecation the default format will switch to columns in the future.you can use format legacy columns or define a format leg...

gcc編譯器各種warning 解決方式

warning implicit declaration of function 函式的隱式說明 今天在移植gnu ucos的時候出現乙個問題 warning implicit declaration of function osctxsw 經過在網上搜尋發現主要有兩種情況會產生這種問題 1 沒有把...

常見warning的處理方法

最近,處理乙個中介軟體中所有的warning,經過編譯發現警告資訊多如牛毛,而且這個中介軟體還是乙個國內絕對一流的公司做的,要是一直這樣下去,不知道中國的軟體什麼時候才能夠達標啊!下面對出現的警告簡單的總結一下 1 賦值型別不符,這也是最常見的 解決辦法可以強制型別轉換 2 實參形參型別不一致 解決...