正如我在C中所知道的那样,函数评估的实际参数的传递从最右边开始并指向左边。带参数的宏定义是什么情况?我编写了一个代码以使含义清晰,但输出使我感到困惑……这是代码。,
#define parsing(a,b) a*b
int parsefun(int a, int b)
{
return a*b;
}
int main()
{
int i=10;
printf("%d\n",parsing((i++),i));
i=10;
printf("%d\n",parsing(i,(i++)));
i=10;
printf("%d\n",parsefun((i++),i));
i=10;
printf("%d\n",parsefun(i,(i++)));
system("PAUSE");
return 0;
}
此代码输出,100 100 100 110
我希望宏的输出与函数相同。但这里的关键点在哪里?