下面提及幾點,
明明定義了返回值,但是不返回
形參、實參型別不匹配,無法進行隱式轉換
編譯器最初會給出警告,至於是不是錯誤,我認為有兩點主要原因
編譯器廠商共同約定的,某些警告就是錯誤
程式設計師可以附加其他錯誤項,比如你就認為某個警告就是錯誤啦
至於我們需不需要將所有的警告全部消滅,看個人和專案要求,但是我們總會遵守下面的兩點
顯示所有的警告
遇到第乙個錯誤,就停止編譯
下面是我的編譯命令,以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 當傳入引數名間存在空格時,編譯器將會自動連線各個子字串,用每個子字串之...
資料庫的使用你可能忽略了這些 續
之前寫過一篇文章 資料庫的使用你可能忽略了這些 主要是從一些大家使用使用時容易忽略的地方,如 字段長度 表設計等來說明,這篇文章同樣也是這樣的主題,只是從另外的幾個方面來說說資料庫使用中,容易忽略,導致入坑的地方。在資料庫進行表設計的時候,就應該評估可能產生的資料量,資料量會對整個開發和 的健壯性有...