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