-
“Warning[Pe550]: variable “变量” was set but never
used”
原因:变量定义赋值了但从未使用
解决:变量定义删了就可以,编译器也不会真的给这个变量分配空间
-
Warning[Pe223]: function “函数名” declared implicitly "
原因:这个函数隐式声明。意思是在他调用的地方找不到函数原型。
解决:在调用的地方增加相应函数头文件的函数原型申明。"
-
Warning[Pe177]: function “函数名” was declared but never referenced 定义了这个函数没有用
原因:定义了这个函数没有用
-
Warning :546: transfer of control bypasses initialization of:
原因:初始化被绕过
解决:检查报错的
-
warning: #191-D: type qualifier is meaningless on cast type
原因:类型限定符对类型转换没有意义
-
Warning[Pa089]: enumerated type mixed with another enumerated type
原因:枚举类型与另一个枚举类型混合
-
error: #if with no expression
原因:#if 没有表达,代码举例如下:
#define TEST_A
#if TEST_A
#define TEST_NUMBER 1
#else
#define TEST_NUMBER 2
#endif
解决:检查下代码,看到底想用的是#if还是#ifdef,#if的话宏定义需要定义个值才行
- “Remark[Pe193]: zero used for undefined preprocessing identifier"宏定义名”
原因:未定义的预处理标识符。这个是最近开发遇到的一个很严重且隐蔽的问题,代码举例如下:
#include <stdio.h>
#if TEST_A
#define TEST_NUMBER 1
#else
#define TEST_NUMBER 2
#endif
int main()
{
printf("test number:%d\n", TEST_NUMBER);
return 0;
}
结果是编译不报错,输出 test number:2
如果代码中宏定义TEST_A是在别的.h中定义,但当前代码并未正确引用这个.h,编译器在编译这里时是认为TEST_A这个宏定义不存在的,但#if的宏不存在时并不会报错,甚至警告也没有,只是一个Remark提示。
当我们以为此处的TEST_NUMBER是受TEST_A宏控制的,其实并没有。
解决:与上一条类似,检查代码看到底想用的是#if还是#ifdef,并添加引用定义这个宏的头文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)