vs2003 bug?

Bind 2007-04-05 02:16:46
long l = 0;
l = 256*256*256*256;

编译通不过?
...全文
201 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oolongTea 2007-04-05
  • 打赏
  • 举报
回复
晕倒,Opera浏览器也有bug
刚才回复之前刷新了,看到还没有人回复,
以为沙发是我的
一回复就到五楼了,而且答案重复,汗
oolongTea 2007-04-05
  • 打赏
  • 举报
回复
11 楼Ivony()回复于 2006-03-08 23:16:46 得分 20
溢出了。

256l*256*256*256即可

第一个数是long型的,迫使后面的运算采用long operator*( long, long )运算。

而如果不在第一个数后面加上l,则一直用int operator*( int, int )运算,即使溢出亦不会隐式类型转换,因为不存在long operator*( int, int )。即使最后扔到一个long型的变量中,也是溢出之后的事情了。即 implicit operator long( operator*( operator*( operator*( 256, 256 ), 256 ), 256 ) )

http://topic.csdn.net/t/20060306/20/4596515.html
Red_angelX 2007-04-05
  • 打赏
  • 举报
回复
原来是这样
Avoid 2007-04-05
  • 打赏
  • 举报
回复
溢出了。

256l*256*256*256即可

第一个数是long型的,迫使后面的运算采用long operator*( long, long )运算。

而如果不在第一个数后面加上l,则一直用int operator*( int, int )运算,即使溢出亦不会隐式类型转换,因为不存在long operator*( int, int )。即使最后扔到一个long型的变量中,也是溢出之后的事情了。即 implicit operator long( operator*( operator*( operator*( 256, 256 ), 256 ), 256 ) )


strcpy
嘿嘿
gui0605 2007-04-05
  • 打赏
  • 举报
回复
是不是溢出了?
Red_angelX 2007-04-05
  • 打赏
  • 举报
回复
确实通不过 bug

111,124

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧