This is output from `defines' version 4.1.1, from your buddies at Newtware! Thu May 17 22:42:26 HKT 2012 Linux debian 2.6.32-5-686 #1 SMP Mon Mar 26 05:20:33 UTC 2012 i686 GNU/Linux cc = [/opt/open64/bin/opencc] /tmp/def1481.c:31490:34: error: _Pragma takes a parenthesized string literal /tmp/def1481.c:35983:8: warning: __VA_ARGS__ can only appear in the expansion of a C99 variadic macro /tmp/def1481.c:54742:8: error: "defined" cannot be used as a macro name _Pragma = __BASE_FILE__ = "/tmp/def1481.c" __CHAR_BIT__ = 8 __DATE__ = "May 17 2012" __DECIMAL_DIG__ = 21 __DEC_EVAL_METHOD__ = 2 __ELF__ = 1 __FILE__ = "/tmp/def1481.c" __FINITE_MATH_ONLY__ = 0 __FLT_EVAL_METHOD__ = 2 __FLT_RADIX__ = 2 __GNUC_GNU_INLINE__ = 1 __GNUC_MINOR__ = 2 __GNUC_PATCHLEVEL__ = 0 __GNUC__ = 4 __GXX_ABI_VERSION = 1002 __INCLUDE_LEVEL__ = 0 __INTMAX_MAX__ = 9223372036854775807LL __INTMAX_TYPE__ = long long int __INT_MAX__ = 2147483647 __LINE__ = 35846 __LONG_LONG_MAX__ = 9223372036854775807LL __LONG_MAX__ = 2147483647L __MMX__ = 1 __OPEN64__ = "5.0" __OPENCC_MINOR__ = 0 __OPENCC_PATCHLEVEL__ = __OPENCC__ = 5 __OPTIMIZE__ = 1 __PTRDIFF_TYPE__ = int __REGISTER_PREFIX__ = __SCHAR_MAX__ = 127 __SHRT_MAX__ = 32767 __SIZE_TYPE__ = unsigned int __SSE2__ = 1 __SSE__ = 1 __STDC_HOSTED__ = 1 __STDC__ = 1 __TIMESTAMP__ = "Thu May 17 22:42:28 2012" __TIME__ = "22:42:28" __UINTMAX_TYPE__ = long long unsigned int __USER_LABEL_PREFIX__ = __VERSION__ = "4.2.0" __WCHAR_MAX__ = 2147483647 __WCHAR_TYPE__ = int __WINT_TYPE__ = unsigned int __gnu_linux__ = 1 i386 = 1 linux = 1 unix = 1 Checking other possibilities; should already be listed above: __DATE__ = "May 17 2012" __FILE__ = "/tmp/def1481.c" __GNUC__ = 4 __LINE__ = 25 __STDC__ = 1 __TIME__ = "22:42:28" Sizes of basic variable types: sizeof(char) = 8 bits sizeof(short) = 16 bits sizeof(int) = 32 bits sizeof(long) = 32 bits sizeof(long long) = 64 bits sizeof(float) = 32 bits sizeof(double) = 64 bits sizeof(long double) = 96 bits sizeof(char *) = 32 bits sizeof(char (*)(char)) = 32 bits