Hi, all, With following code: [CODE] struct B { int c; int d; };
#define X(a, b, c) \ do\ {\ if (a)\ printf("%d, %d\n", b.c, c);\ else\ printf("%d\n", c);\ }while(0); [/CODE] Why int d = 24; X(1, b, d); can be compiled successfully but X(1, b, 24); not. I cannot find any description about this behavior in C standard.