在这种情况下理解预处理器指令?

Pra*_*bha -3 c macros c-preprocessor

#define swap(a,b,c)(int t;t=a;a=b;b=t;);
void main()
{
    int x=10,y=20;
    swap (x,y,int);
    printf("%d %d\n",x,y);
}
Run Code Online (Sandbox Code Playgroud)

什么是输出,为什么?

Pey*_*man 6

最好像这样重写你的宏:

#define swap(a, b, type) \
        do { \
                type t = a; \
                a = b; \
                b = t; \
        } while (0)
Run Code Online (Sandbox Code Playgroud)