您的位置:首页 > 其它

宏定义中的参数需要加括号的原因

2012-08-29 10:29 162 查看
加括号是为了处理表达式参数(即宏的参数可能是个算法表达式)时不出错,因为宏替换就是文本替换,所以如果有以下情况:

#define COM(A,B) (A)*(B)

那么COM(6+5,3)这个调用会怎么替换呢?它会换成这样:

(6+5)*(3)

显然这是和COM宏的意图一致的,但是如是去掉了定义中括号,即写成这样:

#define COM(A,B) A*B

那么COM(6+5,3)这个调用会怎么替换呢?它就会换成这样:

6+5*3

这样显然就和宏的意图不符合了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐