C C 如何忽略定義了但是未使用的變數

2021-10-14 02:47:41 字數 1342 閱讀 2502

下面提及幾點,

明明定義了返回值,但是不返回

形參、實參型別不匹配,無法進行隱式轉換

編譯器最初會給出警告,至於是不是錯誤,我認為有兩點主要原因

編譯器廠商共同約定的,某些警告就是錯誤

程式設計師可以附加其他錯誤項,比如你就認為某個警告就是錯誤啦

至於我們需不需要將所有的警告全部消滅,看個人和專案要求,但是我們總會遵守下面的兩點

顯示所有的警告

遇到第乙個錯誤,就停止編譯

下面是我的編譯命令,以c++為例吧,

"-g"

,// gdb除錯用的,不需要可以不加

"file.cpp"

,"-o"

,"file"

,"-std=c++11"

,// c++都加上

"-wall"

,// 顯示所有警告

"-wextra"

,// 顯示額外警告

"-wfatal-errors"

// 遇到第乙個錯誤就停止,減少查詢錯誤時間

下面是乙個很常見的案例,這是其實有兩個警告

int

main

(int argc,

char

* ar**)

警告如下,注意,編譯要像上面那樣子給,才能看到警告

/home/topeet/myboost/test.cpp:78:

14: warning: unused parameter 『argc』 [

-wunused-parameter]

intmain

(int argc,

char

* ar**)

^~~~

/home/topeet/myboost/test.cpp:78:

31: warning: unused parameter 『ar**』 [

-wunused-parameter]

intmain

(int argc,

char

* ar**)

^

int

main

(int argc,

char

* ar**)

這樣警告就消失了,這個語法有點特殊(void)var

注意,c++**可以沒有return 0;編譯器會自動加上的。

最後,c++中boost庫有專門有乙個元件就是解決這個問題的,叫做ignore_unused

c c 如何定義陣列的指標

include include include 如何定義陣列的指標 三種方式 先定義出陣列的型別,再通過型別建立陣列的指標 void test01 typedef int array type 5 array type是乙個資料型別 array type arrp arr for int i 0 i...

C C 巨集定義的常見使用

在我們平時的開發工程中,會經常使用到巨集,它功能強大,用的好會帶來意想不到的妙用。今天來整理下一些常見的用法,方便回顧。將其後面的巨集引數進行字串化操作 stringfication 注意 a 忽略傳入引數名前面和後面的空格。b 當傳入引數名間存在空格時,編譯器將會自動連線各個子字串,用每個子字串之...

資料庫的使用你可能忽略了這些 續

之前寫過一篇文章 資料庫的使用你可能忽略了這些 主要是從一些大家使用使用時容易忽略的地方,如 字段長度 表設計等來說明,這篇文章同樣也是這樣的主題,只是從另外的幾個方面來說說資料庫使用中,容易忽略,導致入坑的地方。在資料庫進行表設計的時候,就應該評估可能產生的資料量,資料量會對整個開發和 的健壯性有...