#define C(X,Y) X##Y int C(A,1Xxyz) = 10; int C(B,1X1X1Xxyz) = 20; int C(C,0Xxyz) = 30; // macro expansion is NOT OK int C(CC,0Xxyz) = 30; // OK int C(D,0xxyz) = 40; // macro expansion is NOT OK int C(E,0x0x0xxyz) = 50; void main() { if( A1Xxyz == 10 ) printf( "OK\n" ); else printf( "NOK\n" ); if( B1X1X1Xxyz == 20 ) printf( "OK\n" ); else printf( "NOK\n" ); if( C0Xxyz == 30 ) printf( "OK\n" ); else printf( "NOK\n" ); if( D0xxyz == 40 ) printf( "OK\n" ); else printf( "NOK\n" ); if( E0x0x0xxyz == 50 ) printf( "OK\n" ); else printf( "NOK\n" ); }