【发布时间】:2014-04-02 06:25:51
【问题描述】:
#include<stdio.h>
#define exch(A,B) {int t=A;A=B;B=t;}
int main(void)
{
int a=1,b=4;
exch(a,b);
printf("%d\t%d\n",a,b);
return 0;
}
打印:a=4,b=1
在输出中,a和b已经交换了;为什么宏不按值调用?请帮我解释一下结果。
【问题讨论】:
标签: c macros c-preprocessor call-by-value