博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

目前看到的比较好的方法是:

#define MaxNum(a, b) (fabs((a)-(b)) == ((a)-(b))?(a):(b))

这个定义也有问题,虽然说fabs参数为double类型,已经是足够用了,但在c++中有个重载的问题,其原型为double fabs( double x );

如果输入的两个数都为int类型,编译就通不过。

由此可见,不要用宏干这样的事情,实在是,没什么意义