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

不要轻易忽略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 >

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

改为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”: 不是所有的控件路径都返回值

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


应加default标签判断。

(96)C++数组下标可以为负数


(97)warning C4305: “初始化”: 从“int”到“bool”截断


切记:bool true为非零值,false为零值。

(98)warning LNK4099: 未找到PDB“vc80.pdb”

 工程里面引用到的lib库编译所用VS版本和应用程序编译所用VS版本不同,用同一版本VS重新编译lib库及应用程序。

(99)VS中Ctrl+F,查找对话框不出来,而且查找的快捷键设置的是Ctrl+F

快捷键设置:菜单栏工具->选项->环境->键盘

菜单栏窗口->重置窗口布局

(100)fatal error C1064: 编译器限制: 标记已溢出内部缓冲区

VS2008中类名、变量名、函数名过长,超过4095个字符会报这个错

更多 0
0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值