編譯錯誤信息
Turbo C編譯程序檢查源程序中三類出錯信息:致命錯誤、一般錯誤和警告。
致命錯誤出現(xiàn)很少,它通常是內(nèi)部編譯出錯。在發(fā)生錯誤時,立即停止,必須采取一些適當(dāng)?shù)拇胧┎⒅匦戮幾g。
一般錯誤指程序的語法錯誤、磁盤或內(nèi)存存取錯誤或命令錯誤等。編譯程序?qū)⒏鶕?jù)事先廟宇的出錯個數(shù)來決定是否停止編譯。編譯程序在每個階段(預(yù)處理、語法分析、優(yōu)化、代碼生成)盡可能多地發(fā)現(xiàn)源程序中的錯誤。
警告并不阻止編譯進(jìn)行。它指出一些值得懷疑的情況,而這些情況本身又有可能合理地成為源程序的一部分。如果在源文件中使用了與機(jī)器有關(guān)的結(jié)構(gòu),編譯也將產(chǎn)生警告信息。
編譯程序首先輸出這三類錯誤信息,然后輸出源文件名和發(fā)現(xiàn)出錯的行號,最后輸出信息的內(nèi)容。
下面按字母順序分別列出這三類錯誤信息。對每一條信息,提供可能產(chǎn)生的原因和修正方法。
請注意錯誤信息處有關(guān)行事情的一個細(xì)節(jié):編譯程序只產(chǎn)生被檢測到的信息。因?yàn)镃并不限定在正文的某行放一條語句,這樣,真正產(chǎn)生錯誤的行可能在編譯指出的前一行或幾行。在下面的信息列表中,我們指出了這種可能。
致命錯誤
1. Bad call of in-line function 內(nèi)部函數(shù)非法調(diào)用
在使用一個宏定義的內(nèi)部函數(shù)時,沒有正確調(diào)用。一個內(nèi)部函數(shù)以雙下劃線(--)開始和結(jié)束。
2. Irreducible expression tree 不可約表達(dá)式樹
這種錯誤是由于源文件中的某些表達(dá)式使得代碼生成程序無法為它產(chǎn)生代碼。這種表達(dá)式必須避免使用。
3. Register allocation failure 存儲器分配失效
這種錯誤指的是源文件行中的表達(dá)式太復(fù)雜,代碼生成程序無法為它代碼。此時應(yīng)簡化這種繁雜的表達(dá)式或干脆避免使用它。
一般錯誤
1. #operator not followed by macro argument name
#運(yùn)算符后無宏變量名。在宏定義中,#用于標(biāo)識一宏變量名。"#"后必須跟一宏變量名。
2. 'xxxxxxxxx' not an argument
'xxxxxxx'不是函數(shù)參數(shù)。在源程序中將該標(biāo)識符定義為一個函數(shù)參數(shù),但此標(biāo)識符沒有在函數(shù)表中出現(xiàn)。
3. Ambiguous symbol 'xxxxxxxxx'
二義性符號'xxxxxxxxx'。兩個或多個結(jié)構(gòu)的某一域名相同,但具有的偏移、類型不同。在變量或表達(dá)式中引用該域而未帶結(jié)構(gòu)名時,將產(chǎn)生二義性,此時需修改某個域名或在引用時另上結(jié)構(gòu)名。
4. Argument #missing name
參數(shù)#名丟失。參數(shù)名已脫離用于定義函數(shù)的原型。如果函數(shù)以原型定義,該函數(shù)必須包含所有的參數(shù)名。
5. Argument list syntax error
參數(shù)表出現(xiàn)語法錯誤。函數(shù)調(diào)用的參數(shù)間必須以逗號隔開,并以一右括號結(jié)束。若源文件中含有一個其后不是逗號也不是右括號的參數(shù),則出錯。
6. Array bounds missing
數(shù)組的界限符"]"丟失。在源文件中定義了一個數(shù)組,但此數(shù)組沒有以一右方括號結(jié)束。
7. Array size too large
數(shù)組長度太大。定義的數(shù)組太大,可用內(nèi)存不夠。
8. Assembler statement too long
匯編語句太長。內(nèi)部匯編語句語句最長不能超過去480字節(jié)。
9. Bad configuration file
配置文件不正確。RURBOC。CFG配置文件中包含不是合適命令行選擇項的非注解文字。配置文件命令選擇項必須以一短橫線(-)開始。
10. Bad file name format in include directive
使用include指令時,文件名格式不正確。Include文件名必須用引號("filename.h")或尖括號()括起來,否則將產(chǎn)生此類錯誤。如果使用了宏,則產(chǎn)生的擴(kuò)展正文也不正確(因?yàn)闊o引號)。
相關(guān)推薦:2010年9月計算機(jī)等級考試精華備考資料匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |