莫名奇妙,宏不一样,尽然产生意想不到的结果
有两个宏都是用于比较两个数在一定误差范围内是否相等,
其中一个写做#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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最好加上括弧()
是不和/有关?