可能重复:
C宏并在括号中使用参数
我发现这个宏观问题非常有趣.
如果以下代码定义为宏
#define MULT(x, y) x * y
Run Code Online (Sandbox Code Playgroud)
并且函数调用为int z = MULT(3 + 2, 4 + 2);.期望输出为3 + 2 = 5且4 + 2 = 6且5*6为30.
但返回的输出是13.它需要3 + 2*4 + 2.因此,根据运算符的优先级,它首先计算2*4.
这是什么修复?如果像这样的小功能哪一个有效?定义功能还是使用宏?
| 归档时间: |
|
| 查看次数: |
5726 次 |
| 最近记录: |