C Preprocessor - Programming

Q1:

What will the SWAP macro in the following program be expanded to on preprocessing? will the code compile?
#include<stdio.h>
#define SWAP(a, b, c)(c t; t=a, a=b, b=t)
int main()
{
    int x=10, y=20;
    SWAP(x, y, int);
    printf('%d %d\n', x, y);
    return 0;
}

A It compiles

B Compiles with an warning

C Not compile

D Compiles and print nothing

ANS:A - It compiles

The code won't compile since declaration of t cannot occur within parenthesis.