1. 宏定义(这个宏输入两个参数,并输出最小大一个)
正确答案:#define MIN(a,b)((a)<=(b)?(a):(b))
注:(1)#define MIN(a,b)(a)<= (b)?(a):(b)是错误的,因为没加大括号
(2)#defineMIN(a, b) (a<=b?a:b)是错误的,因为a和b有可能是表达式
(3)#defineMIN(a, b) ((a)<=(b)?(a):(b)));是错误的,因为后面不加分号
另:MIN(*p++,b)会产生副作用,指针p会做三次自加操作。
本文详细解析了宏定义MIN的功能及正确使用方式,对比了不同写法的优缺点,并特别指出当参数为表达式时可能产生的副作用。
3834

被折叠的 条评论
为什么被折叠?



