100个windows平台C++开发错误之十九Warning

更多精彩内容,请见:http://www.16boke.com

by zxy,Java/C++ 编程交流群 :168424095

不要轻易忽略warning,也许一个致命的错误就发生在提示warning的地方。

(91)warning C4101: “XXXXX”:未引用的局部变量

尽量去掉无用变量的声明。

(92)VS2005中出现warningC4996:strcpy was declared deprecated(不赞成使用strcpy)

出现这样的警告,是因为VC2005认为CRT中的一组函数如果使用不当,可能会产生诸如内存泄露、缓冲区溢出、非法访问等安全问题。这些函数如:strcpy、strcat等。

对于这些问题,VC2005建议使用这些函数的更高级的安全版本,即在这些函数名后面加了一个_s的函数。这些安全版本函数使用起来更有效,也便于识别,如:strcpy_s。

(93)warning C4018: “<”:有符号/无符号不匹配<’<’:Signed/unsigned mismatch >

100个windows平台C++开发错误之十九Warning_第1张图片

前后类型不符,一个是有符号数,一个是无符号数,如果超出有符号数的上限,则会出错,所以提示警告。

改为for (size_t i = 0 ; i < vec.size();++i)即可。

(94)warning C4267: “=”:“size_t”转换到“int”,可能丢失数据 conversion from ‘size_t’ to ‘int’,possible loss of data

最好将”=”两侧类型相同,如果不想改而且不想报warning可以用static_cast<int>强制转换。

(95)warning C4715: “XXX”: 不是所有的控件路径都返回值

所有分支都要返回值,举例:

100个windows平台C++开发错误之十九Warning_第2张图片

应加default标签判断。


更多精彩内容,请见:http://www.16boke.com

你可能感兴趣的:(100个windows平台C++开发错误之十九Warning)