c语言警告

1. 'xxxxxxxxx'declared but never used

  说明了'xxxxxxxx'但未使用。在源文件中说明了此变量,但没有使用当编译程序遇到复合语句或函数的结束处时,发出警告。

2. 'xxxxxxxx' is assigned a value which is never used

  'xxxxxxx'被赋值,没有使此变量出现在一个赋值语句中,但直到函数结束都不得未使用。

3. 'xxxxxxxx'not part of structure

  'xxxxxxxxx'不是结构的上部分出现在蹼(.)或箭头()左边的域名不是结构的一部分,或者点的左边不是结构,箭头在左边不指向结构。

4. Ambiguous operators need parentheses

  二义性操作符需要括号。当两个位移、关系或按位操作符在一起使用而不加括号时,发出此警告;当一加法或减法操作符不加括号与一位移操作符出现在一起时,也发出此警告。程序员总是混淆这些操作符的优先,因为它们的优先级不太直观。

5. Both return and return of a value used

  既用返回值。编译程序发现同时带值返回和不带值返回的return语句,发出此类警告。

6. Call to function with prototype

  调用无原型函数。如果'原型请求警告可用,且又调用了一无原型的函数,就发出此类警告。

7. Call to function 'xxxx'with prototype

  调用无原型的'xxxx'函数。如果“原型请求”警告可用,且又调用了一个原先没有原型的函数'xxxx'就发出本警告。

8. Code has no effect

  代码无效。当编译程序遇到一个含无效操作符的语句时,发出此类警告。如语句:a+b,对每一个一变量都不起作用,无需操作,且可能引出一个错误。

9. Constant is long

  常量是long类型。当编译程序遇到一个十进制常量大于32767,或一个八进制常量大于65535而其后没有字母'I''L'时,把此常量当作long类型处理。

10. Constant out of range in comparision

  比较时常量超出了范围。在源文件中有一种比较,其中一个常常量表达式超出了另一个常量表达式类型所允许的范围。如一个无符号常量跟-1比较没有意义。为得到一个大于32767(十进制)的无符号常量,可以在常量前加上unsigned ((unsigned )65535)或在常量后加上字母‘u ’或'U'(65535)

11. Conversation may lose significant digits

  转换可能丢失高位数字。在赋值操作或其它情况下,源程序要求把long unsigned 类型转变成int unsigned int 类型。在有些机器上,因为 型和 型变量具有相同长度,这种转换可能改变程序的输出特性;

无论此警告何时发生,编译程序仍将产生代码来做比较。如果代码比较后总是给出同样结果,比如一个字符表达式与4000比较,则代码总要进行测试。这还表示一个无符号表达式可以与-1比较,因为8087机器上,一个无符号表达式与-1具有相同的位模式;

12. Function should return a value

  函数应该返回一个值。源文件中说明的当前函数的返回类型既非 也非 型,但编译程序未发现返回值。返回int 型的函数可以不说明,因为在老版本的C语言中,没有void 类型来指出函数不返回值。

13. Mixing pointers to signed and unsigned char

  混淆signed unsigned 字符指针。没有通过显示的强制类型转换,就把一个字符指针变为无符号指针,或相反。

14. No deceleration for function 'xxxxxxxx'

  函数'xxxxxxxx '没有说明。当“说明要求”警告可用,而又调用了一个没有预先说明的函数时,发出此警告。函数说明可以是传统的,也可以是现代的风格;

15. Non-portable pointer assignment

  不可移植指针赋值。源文件中把一个指针赋给另一非指针,或相反。作为特例,可以把常量零赋给一指针。如果合适,可以强行抑制本警告;

16. Non-portable pointer comparision

  不可移植指针比较。源文件中把一个指针和另一非指针(非常量零)作比较。如果合适,可以强行抑制本警告。

17. Non-portable return type conversion

  不可移植返回类型转换。return 语句中的表达式类型和函数说明的类型不一致。作为特例,如果函数或返回表达式是一个指针,这是可以的,在此情况下返回指针的函数可能返回一个常量零,被转变成一个合适的指针值。

18. Parameter 'xxxxxxxx'is never used

  参数'xxxxxxxx'没有使用。函数说明中的某参数在函数体里从未使用,这不一定是一个错误,通常是由于参数名拼写错误而引起。如果在函数体内,该标识符被重新定义为一个自动(局部)变量,也将出现此类警告。

19. Possible use of 'xxxxxxxx'before definition

  在定义'xxxxxxxx'之前可能己使用。源文件的某一表达式中使用了未经赋值的变量,编译程序对源文件进行简单扫描以确定此条件。如果该变量出现的物理位置在对它同值之前,便会产生此警告,当然程序的实际流程可能在使用之前己赋值。

20. Possible incorrect assignment

  可能的不正确的赋值。当编译程序遇到赋值操作符作为条件表达式(if,while do-while语句的一部分)的主操作时,发出警告,通常是由于把赋值号当作符号使用了,如果希望禁止警告,可把赋值语句用括号括起,并且把它与零作显式比较,如:if(a=b)...应写为:if((a=b)!=0)...

21. Redifination of 'xxxxxxx'is not identical

  'xxxxxxxx' 重定义不相同。源文件中对命令宏重定义时,使用的正文内容与第一次定义时不同,新内容将代码旧内容。

22. restarting compiler using assembly

  用汇编重新启动编译。编译程序遇到一个未使用命令行选择项-B#prapma inline语句的asm 。通过使用汇编重新启动编译。

23. structure passed by value

  结构按值传送。如果设置了“结构按值传送”警告开关,则在结构作为参数按值传送时产生警告。通常是在编制程序时,把结构作为参数传递,而又漏掉了地址操作符(&)。因为结构可以按值传送,因此这种遗漏是可接受的。本警告只起一个批示作用。

24. suplerfluous & with function or array

  在函数或数组中有多余的&号。取地址操作符(&)对一个数组或函数名是不必要的,应该去掉。

25.  Suspicious pointer conversation

  值得怀疑的指针转换。编译程序遇到一些指针转换,这些转换引起指针指向不同的类型。如果合适,应强行抑制此类警告。

26. Undefined structure 'xxxxxxxx'

  结构'xxxxxxxx'未定义。在源文件中使用了该结构,但未定义。可能是由于结构名拼写错误或忘记定义而引起的。

27. Unknown assembler instruction

  不认识的汇编指令。编译程序发现在插入的汇编语句在有一个不允许的操作码。检查此操作的拼写,并查看一下操作码表看该指令能否被接受。

28. Unreachable code

  不可达代码。break,continue,goto return 语句后没有跟标号或循环函数的结束符。编译程序使用一个常量测试条件来检查while,dofor循环有没有失败。

29. Void function may not return a value

  Void 函数不可返回值,源文件中的当前函数说明为 ,但编译程序发现一个带值的返回语句,该返回语句的值将被忽略。

30. Zero length structure

  结构长度为零。在源文件中定义了一个长度为零的结构,对此结构的任何使用都是错误的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值