【发布时间】:2013-07-07 08:09:45
【问题描述】:
我是 C 语言的新手。我只是想知道为什么我的宏不能正常工作。它给我的输出是 13,而我的预期输出是 24。?
#include<stdio.h>
#define mult(a,b) a*b
int main()
{
int x=4,y=5;
printf("%d",mult(x+2,y-1));
return 0;
}
【问题讨论】:
-
将其通过预处理器,应用初等数学,然后后悔没有遵守“始终为宏参数加上括号”的规则。哦,下次在使用宏之前要三思。然后不要使用宏,而是编写一个(可能是
inline)函数。 -
必须是
#define mult(a,b) ((a)*(b))。这就是问题所在。