小编Cha*_*ace的帖子

为什么宏功能不是按值调用?

#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;
}
Run Code Online (Sandbox Code Playgroud)

打印:a=4,b=1

在输出中,a和b已被交换; 为什么宏不按值调用?请通过解释结果帮助我.

c macros c-preprocessor call-by-value

1
推荐指数
1
解决办法
83
查看次数

标签 统计

c ×1

c-preprocessor ×1

call-by-value ×1

macros ×1