C 編譯錯誤總結及其英文翻譯 墨白

2021-09-12 12:00:26 字數 1573 閱讀 5112

作為一名c++的學習者(任何語言都是一樣的),學會讀編譯器發出的錯誤資訊都是一件很重要的事情。在前輩們不斷地犯錯的過程中,漸漸都會形成自己的錯誤除錯體系。這裡將絕大多數正常人能碰到的錯誤歸納總結。

fatal的意思是致命的,重大的的意思,這句話翻譯過來是:錯誤實在是太多了,停止編譯。能寫出這種程式的人也不一般。

這句話的意思是沒料想到檔案結束了,沒找見檔案結尾。出現這種錯誤一般是因為函式少加了}或者是類或struct的定義後面忘記加;了,也有可能是**注釋的時候只有前面有/後面就忘記寫/了。對於括號不配對這種情況要注意,一般都是沒有良好的程式設計書寫風格的人容易犯,尤其是在多重巢狀的時候。

這句話的意思是不能開啟***這個標頭檔案,沒有這樣的檔案或者是檔案目錄。 directory的意思就是檔案的路徑/計算機檔案的目錄。出現這種情況可能是:標頭檔案不存在,標頭檔案拼寫錯誤或者是標頭檔案為唯讀。千萬千萬注意,很多人都是因為標頭檔案拼寫錯誤出現了這個錯誤提示。

這句話的翻譯是:常量中有換行符。原因一般是在常量字串中加了換行,使其多行書寫。我認為這不是人能犯的錯誤。

identifier是識別符的意思,這句話的意思是期待乙個檔名。

錯誤原因是忘記加雙引號或者是尖括號或者雙引號加的位置不對。

這裡syntax是語法的意思,invalid是無效的 的意思,這兩個詞經常用到,這句話的意思是:用define時語法錯誤。

常量中字元太多了。好吧,這一般是因為『』單引號中只能有乙個字元,寫多個字元就會報這個錯誤。

這裡英文本母不太好理解,escape是逃跑的意思,但這裡

escape sequence的意思是 轉義字元。 這句話的意思是:轉義字元非法。錯誤原因一般是因為轉義字元跑到了單引號或者雙引號的外面。

這個錯誤很常見啊,oxhh這種東西一般都是中文的字元。這句話說明一不小心敲入了中文字元。

這句話出現說明結構體或者是類的成員函式或者是資料成員引用錯了,可能拼寫資料成員是拼錯了。

這句話的意思是switch中的表示式不是整數。我們知道switch()中必須寫乙個整型(char型也可以),注意,char型別可以,但是字串就不行了,如果你加了雙引號,可能會報這個錯。

期待乙個常量表示式。哈哈這個錯誤我們最長犯了,我們知道,陣列宣告時裡面的必須是乙個常量,如果你把裡面寫成變數,那就報這個錯誤。

identifier是識別符號的意思。沒定義識別符號。這個錯誤有兩種可能,一種是printf cin cout這些報錯,那就是你忘記包含標頭檔案了。

如果是自定義的變數報錯,那就是你忘記宣告變數了。

初始值太多啦。這種情況一般是你定義的陣列長度為n,但是你給的初始化的值要多於陣列的元素個數。

這裡有乙個我們經常見到的片語, formal parameter,我們知道parameter是引數的意思,而formal parameter的意思是形式引數。

說明你在函式體中重複定義了引數。

subscript是下標的意思。這句話是告訴你下標丟失。一般是定義二維陣列的時候忘記寫第二個下標了

操作符需要左值。操作符使用不合理,如++運算子必須要對變數操作,但是

(a+b)++這個操作就不行。

操作符的左運算元必須是左值。例如賦值運算子=,如果你這樣寫(a+b)=1;就會這樣報錯。

***陣列邊界溢位。

c 編譯錯誤

一.變數未定義的引用 1.如果變數是類中的靜態成員,需要先在類外部初始化。否則會出現此種錯誤 二。標頭檔案包含了,卻報 zsp ipc proxy client.hh 8 1 錯誤 expected class name before endif 注意不能包含這些函式所在庫的標頭檔案。比如info ...

VC編譯錯誤總結

2.vs2005,vs2008 缺少 在識別符號 pvoid64 的前面 解決方法 解決 開啟winnt.h 檔案 在如下定義 typedef void pvoid typedef void pointer 64 pvoid64 前新增 define pointer 64 ptr64就行了 3.vs...

xcode編譯錯誤總結

no architectures to compile for only active arch yes 這種錯誤 修改building settings下 build active architecture only 為no即可。dyld symbol not found objc setprop...