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.




Reply via email to