码迷,mamicode.com
首页 > 其他好文 > 详细

有关宏定义的bug

时间:2017-01-04 11:55:20      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:bug   efi   优先级   问题   宏定义   优先   bsp   调用   define   

#define max(a,b) a>b?a:b

这个宏有诸多缺点:
当调用比如max(3,2)*2时会出现不想要的结果.按理来说,我们想要得到的结果是:3*2=6,但是由于优先级的问题,得到的结果是:3>2*2?a:b即得到答案是4;
修改如下:
#define MAX(a,b) ((a)>(b)?(a):(b))

 

有关宏定义的bug

标签:bug   efi   优先级   问题   宏定义   优先   bsp   调用   define   

原文地址:http://www.cnblogs.com/adeng-x/p/6248036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!