
I have traced the problem down to how the MSVC preprocessor deals with the _VAR_ARGS_ token in a variadic macro that is defined in terms of another variadic macro. The preprocessor macro code to detect an empty argument list works fine on the flavors of Unix that I have tested (Linux, FreeBSD, OSX) with gcc, but fails on MS/Windows XP with MSVC.The outputs with the decimal constant and hex.



#IPAD EMULATOR MAC OS 10.7 MAC OS X#
(This is with a home-compiled GCC 4.7.1 on Mac OS X 10.7.4.) Change the constant to 0x12345678900987654321 and the compiler says: xxx.c: In function ‘main’: xxx.c:6:24: warning: integer constant is too large for its type So, it isn't easy manipulating these creatures.
