以下警告,按照数字顺序排列
问题分析:在宏定义时,没有判断本身是否存在,导致重定义
问题解决:在宏定义时,判断是否已经存在
示例:
// 更改前
#defind OPENGL 1// 更改后
#ifndef OPENGL
#defind OPENGL 1
#endif
问题分析:"<" 两边的类型不同
问题解决:更改其中一边的类型,使两边类型相同
示例:
// 更改前
int a;
double b;
a < b;// 更改后
int a;
int b;
a < b;
问题描述:删除指向不完整"xxxxx"类型的指针;没有调用析构函数
问题分析:初始化和析构不在一个类中
问题解决:把初始化和析构放在一起
问题分析:返回值为局部变量或临时变量的地址
问题解决:不允许返回局部变量的地址,也不允许返回智能指针
问题分析:参数从 double 转化为 float , 可能导致数据丢失
问题解决:避免从高精度类型转化为低精度类型(不在意的除外)
问题分析:从 size_t 转化为 uint32, 可能会导致数据丢失
问题解决: 避免从高精度类型转化为低精度类型,可以强转消除警告
问题分析:初始化,从double 到 float 截断
问题解决:可以定义数据类型为double
问题分析:typedef 定义的名称太长
问题解决:使用多个 struct 来代替 typedef
(VS2017版本后,此警告已过时)
问题分析:变量没有 初始化
问题解决:初始化变量
问题分析:有些判断没有 return
问题解决:给所有分支添加返回值
问题分析:把其他类型强制转化为布尔类型
问题解决:可以通过判断来转换,不能强制转换
示例:
// 修改前
int a = 10;
bool b = a;// 修改后
int a = 10;
int b = false;
if(0 != a)
{b = true
}
上一篇:利雅得胜利扳平!C罗凌空抽射中柱,叶海亚跟上补射破门 利雅得胜利凌空抽射 利雅得胜利c罗扳平比分
下一篇:4-0!罗马欧联8强稳了:40岁德罗西率队10战7胜轰26球,完胜穆帅 意甲第1轮罗马对阵佛罗伦萨 意甲罗马对佛罗伦萨的比赛录像