首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为什么从int转为unsigned int编译不会报警告解决方案

2012-05-22 
为什么从int转为unsigned int编译不会报警告在vc2005里,下面的代码在编译的时候不会报警告。C/C++ code#inc

为什么从int转为unsigned int编译不会报警告
在vc2005里,下面的代码在编译的时候不会报警告。

C/C++ code
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){    int len = -10;    char dest[20] = {0};    char src[] = "abc";    memcpy(dest, src, len);    return 0;}


如果int的值为负,转换成unsigned int,值就特别大了,容易造成栈溢出。

[解决办法]
编译器是否产生警告信息,可以设置级别的,你在项目属性中找找就看见了
[解决办法]
比较的时候才会给警告
[解决办法]
警告肯定不能100%发现代码问题。
C#的警告倒是多,不过也有他自己的问题。
[解决办法]
也不要太依赖编译器了!

有时候,编译器的优化,可能会导致很多不同结果...
[解决办法]
有个'oldnames.lib'问题,在C++中是UINT。
你把warnning level设为 4, 就会报警了。

热点排行