工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1391|回复: 2

-10==10?

[复制链接]
发表于 2007-11-19 22:35 | 显示全部楼层 |阅读模式
原地址:http://linux.solidot.org/article ... 512218&from=rss
bhpan 写道 "linux程序不能区分正数和负数,例如,-10和10会被认为是相等的。真的是这样吗?试试以下的C代码:
  int main () {
                int i=2;
                if( -10*abs (i-1) == 10*abs(i-1) )
                                printf ("OMG,-10==10 in linux!\n");
                else
                                printf ("nothing special here\n");
}
同样的C代码,在windows和unix系统中编译运行的结果是nothing special here,只有linux得到是-10==10。
恩,我们的gcc在这里犯了一个低级错误。"
 楼主| 发表于 2007-11-20 00:48 | 显示全部楼层
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34130

------- Comment #4 From Richard Guenther  2007-11-17 14:23  [reply] -------

Fixed on the trunk.
回复

使用道具 举报

发表于 2007-11-20 22:09 | 显示全部楼层
http://blog.csdn.net/Raptor/archive/2007/11/19/1893079.aspx

我猜是abs的问题,原来是编译器优化原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-6-6 00:47

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表