10. Constant out of range in comparision
比較時常量超出了范圍。在源文件中有一種比較,其中一個常常量表達式超出了另一個常量表達式類型所允許的范圍。如一個無符號常量跟-1比較沒有意義。為得到一個大于32767(十進制)的無符號常量,可以在常量前加上unsigned (如(unsigned )65535)或在常量后加上字母‘u ’或'U'(如65535);
11. Conversation may lose significant digits
轉(zhuǎn)換可能丟失高位數(shù)字。在賦值操作或其它情況下,源程序要求把long 或unsigned 類型轉(zhuǎn)變成int 或unsigned int 類型。在有些機器上,因為 型和 型變量具有相同長度,這種轉(zhuǎn)換可能改變程序的輸出特性;
無論此警告何時發(fā)生,編譯程序仍將產(chǎn)生代碼來做比較。如果代碼比較后總是給出同樣結(jié)果,比如一個字符表達式與4000比較,則代碼總要進行測試。這還表示一個無符號表達式可以與-1比較,因為8087機器上,一個無符號表達式與-1具有相同的位模式;
12. Function should return a value
函數(shù)應(yīng)該返回一個值。源文件中說明的當(dāng)前函數(shù)的返回類型既非 型 也非 型,但編譯程序未發(fā)現(xiàn)返回值。返回int 型的函數(shù)可以不說明,因為在老版本的C語言中,沒有void 類型來指出函數(shù)不返回值。
13. Mixing pointers to signed and unsigned char
混淆signed 和unsigned 字符指針。沒有通過顯示的強制類型轉(zhuǎn)換,就把一個字符指針變?yōu)闊o符號指針,或相反。
14. No deceleration for function 'xxxxxxxx'
函數(shù)'xxxxxxxx '沒有說明。當(dāng)“說明要求”警告可用,而又調(diào)用了一個沒有預(yù)先說明的函數(shù)時,發(fā)出此警告。函數(shù)說明可以是傳統(tǒng)的,也可以是現(xiàn)代的風(fēng)格;
15. Non-portable pointer assignment
不可移植指針賦值。源文件中把一個指針賦給另一非指針,或相反。作為特例,可以把常量零賦給一指針。如果合適,可以強行抑制本警告;
16. Non-portable pointer comparision
不可移植指針比較。源文件中把一個指針和另一非指針(非常量零)作比較。如果合適,可以強行抑制本警告。
17. Non-portable return type conversion
不可移植返回類型轉(zhuǎn)換。return 語句中的表達式類型和函數(shù)說明的類型不一致。作為特例,如果函數(shù)或返回表達式是一個指針,這是可以的,在此情況下返回指針的函數(shù)可能返回一個常量零,被轉(zhuǎn)變成一個合適的指針值。
18. Parameter 'xxxxxxxx'is never used
參數(shù)'xxxxxxxx'沒有使用。函數(shù)說明中的某參數(shù)在函數(shù)體里從未使用,這不一定是一個錯誤,通常是由于參數(shù)名拼寫錯誤而引起。如果在函數(shù)體內(nèi),該標識符被重新定義為一個自動(局部)變量,也將出現(xiàn)此類警告。
19. Possible use of 'xxxxxxxx'before definition
在定義'xxxxxxxx'之前可能己使用。源文件的某一表達式中使用了未經(jīng)賦值的變量,編譯程序?qū)υ次募M行簡單掃描以確定此條件。如果該變量出現(xiàn)的物理位置在對它同值之前,便會產(chǎn)生此警告,當(dāng)然程序的實際流程可能在使用之前己賦值。
20. Possible incorrect assignment
可能的不正確的賦值。當(dāng)編譯程序遇到賦值操作符作為條件表達式(如if,while 或do-while語句的一部分)的主操作時,發(fā)出警告,通常是由于把賦值號當(dāng)作符號使用了,如果希望禁止警告,可把賦值語句用括號括起,并且把它與零作顯式比較,如:if(a=b)...應(yīng)寫為:if((a=b)!=0)...
21. Redifination of 'xxxxxxx'is not identical
'xxxxxxxx' 重定義不相同。源文件中對命令宏重定義時,使用的正文內(nèi)容與第一次定義時不同,新內(nèi)容將代碼舊內(nèi)容。
22. restarting compiler using assembly
用匯編重新啟動編譯。編譯程序遇到一個未使用命令行選擇項-B或#prapma inline語句的asm 。通過使用匯編重新啟動編譯。
23. structure passed by value
結(jié)構(gòu)按值傳送。如果設(shè)置了“結(jié)構(gòu)按值傳送”警告開關(guān),則在結(jié)構(gòu)作為參數(shù)按值傳送時產(chǎn)生警告。通常是在編制程序時,把結(jié)構(gòu)作為參數(shù)傳遞,而又漏掉了地址操作符(&)。因為結(jié)構(gòu)可以按值傳送,因此這種遺漏是可接受的。本警告只起一個批示作用。
相關(guān)推薦:2010年9月計算機等級考試精華備考資料匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |