沐枫小筑(C++)

爱老婆,要比编程多一点...

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  18 Posts :: 0 Stories :: 84 Comments :: 0 Trackbacks

公告

沐枫的个人主页

eoool.com生成

eoool.com生成

常用链接

留言簿(8)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 56516
  • 排名 - 401

最新评论

阅读排行榜

评论排行榜

    从VC2003到VC2005,一直有一个很奇怪的问题。
    如下的代码:
    short s1 = 0;
    
short s2 = 2;

    s1 
+= s2;
    在这两个编译器的 /w4 四级警告打开的时候,就冒出以下的警告来:
warning C4244: “+=”: 从“int”转换到“short”,可能丢失数据
    为了消除这个警,只能将 += 拆成 = 和 +,如 s1 = s1 + s2。

    终于,这个问题在VC2008消失了。
posted on 2007-11-30 12:50 沐枫 阅读(2238) 评论(7)  编辑 收藏 引用 所属分类: C++

Feedback

# re: VC中的一个很奇怪的问题--关于C4244 2007-11-30 14:12 WXX
难道编译器这么smart,知道会溢处,所以那个+=的临时变量用的int??
哎,这些小问题真的很麻烦.  回复  更多评论
  

# re: VC中的一个很奇怪的问题--关于C4244 2007-11-30 14:49 梦在天涯
都用08了啊,快啊,羡慕哦,我是怎么也下不下来啊   回复  更多评论
  

# re: VC中的一个很奇怪的问题--关于C4244 2007-11-30 16:09 沐枫
用flashget或迅雷之类的下载工具,可以从微软站点全速下载的。  回复  更多评论
  

# re: VC中的一个很奇怪的问题--关于C4244[未登录] 2007-11-30 22:14 杨粼波
可能没有重载short吧.  回复  更多评论
  

# re: VC中的一个很奇怪的问题--关于C4244 2007-12-03 08:35 evan.yh
我记得有一条是所有小于整型的数值在计算之前都被提升为整型.但是好像解释不了为什么第二个不报warning.....  回复  更多评论
  

# re: VC中的一个很奇怪的问题--关于C4244 2007-12-15 22:23 Zero Lee
应该是自动提升到了int类型了。因为机器内部计算依靠4bytes速度会比较快。我知道在C#中是采取这样的方式的。  回复  更多评论
  

# re: VC中的一个很奇怪的问题--关于C4244 2009-11-17 20:34 kaikai
这个,那个啥,前两天我也遇到了。真是巧啊。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理