VS2010编译warning

warning C4018: “<”: 有符号/无符号不匹配

消除方法:

比较运算符 两边的数据一个是有符号数,一个是无符号数;一般在使用库的时候经常出现此类警告,因库类中已将某些类型定义为无符号数,所以我们自己数据也要定义为无符号数,即在自己定义的变量前加上unsigned。例如:在int i; 前面加上unsigend int i;


warning C4482: 使用了非标准扩展: 限定名中使用了枚举

消除方法:

比如有namespace Self{enum E{a,b};};在使用的时候不要写Self::E::a,而要写成Self::a,即限定名中去掉枚举的名称。


warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

消除方法:

打开有该warning的文件,点击【文件】选【高级保存选项】,在【编码(E):】下拉列表框里选择第一项“简体中文(GB23112-代码也936”,【确定】

(http://blog.csdn.net/enjoy517905407/article/details/37958035/)


warning C4503: “std::vector<_Ty,_Ax>::erase”: 超出修饰名的长度,名称被截断

消除方法: 建立类进行封装

如果警告类似于以下这样:

c:\program files\microsoft visual studio 9.0\vc\include\vector(91) : warning C4503: 'std::vector<_Ty>::erase' : decorated name length exceeded, name was truncated
with
[
_Ty=std::vector>>>>
]

封装为:

class TwoDimensionalVectorOfComplexDouble
{
public:
	std::vector< std::vector< std::complex< double > > > vvcd;
};
使用的时候,使用这个类:
std::vector< std::vector< std::vector< TwoDimensionalVectorOfComplexDouble > > > m_H;
如果需要,可以封装多了类。
 
   
 
   
//---------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------- 
 
   
 
   
 
   
一般网上都会说对于想消除的无害警告,有通用的方法:(当然这样只是不显示警告并没有正在消除警告,治标不治本)
 #pragma warning( disable : 4503 ) .
 #pragma warning( disable : 4482 ) .
 #pragma warning( disable : ×××× ) .
  。。。。。。

//---------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(VS2010编译warning)