莫名奇妙,宏不一样,尽然产生意想不到的结果

发布于 2022-07-22 13:48:18 字数 327 浏览 9 评论 2

有两个宏都是用于比较两个数在一定误差范围内是否相等,
其中一个写做#define the_same(x,y)
        (((x*10<y*(10+1))&&(y*10<x*(10+1)))?1:0)
另一个是#define the_same(x,y)
((x>y?x:y)/(x-y))>10|| ((x>y?x:y)/(x-y))<-10||x==y
用第二个宏的时候,系统就会打印出一堆垃圾信息,但是计算是正确的,我是编内核态的程序,大家说说这个奇怪的现象是怎么回事

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

☆獨立☆ 2022-07-25 11:14:25

最好加上括弧()

陪我终i 2022-07-25 09:54:31

原帖由 john3851 于 2006-7-27 17:49 发表
有两个宏都是用于比较两个数在一定误差范围内是否相等,
其中一个写做#define the_same(x,y)
        (((x*10<y*(10+1))&&(y*10<x*(10+1)))?1:0)
另一个是#define the_same(x,y)
((x>y? ...

是不和/有关?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文