This is output from `defines' version 4.1.1, from your buddies at Newtware! Mon Apr 16 11:37:33 2012 skyos skyhost 5.0.0 beta i586 unknown unknown skyos cc = [gcc] /tmp/def233.c:30032:34: error: _Pragma takes a parenthesized string literal /tmp/def233.c:30550:8: warning: __VA_ARGS__ can only appear in the expansion of a C99 variadic macro /tmp/def233.c:50320:8: error: "defined" cannot be used as a macro name PIC = 1 SKYOS = 1 _Pragma = _REENTRANT = 1 _X86_ = 1 __BASE_FILE__ = "/tmp/def233.c" __CHAR_BIT__ = 8 __DATE__ = "Apr 16 2012" __DECIMAL_DIG__ = 21 __ELF__ = 1 __FILE__ = "/tmp/def233.c" __FINITE_MATH_ONLY__ = 0 __FLT_EVAL_METHOD__ = 2 __FLT_RADIX__ = 2 __GNUC_MINOR__ = 1 __GNUC_PATCHLEVEL__ = 1 __GNUC__ = 4 __GXX_ABI_VERSION = 1002 __INCLUDE_LEVEL__ = 0 __INTEL__ = 1 __INTMAX_MAX__ = 9223372036854775807LL __INTMAX_TYPE__ = long long int __INT_MAX__ = 2147483647 __LINE__ = 30437 __LONG_LONG_MAX__ = 9223372036854775807LL __LONG_MAX__ = 2147483647L __NO_INLINE__ = 1 __PIC__ = 1 __PTRDIFF_TYPE__ = int __REGISTER_PREFIX__ = __SCHAR_MAX__ = 127 __SHRT_MAX__ = 32767 __SIZE_TYPE__ = unsigned int __SKYOS__ = 1 __STDC_HOSTED__ = 1 __STDC__ = 1 __TIME__ = "11:37:38" __UINTMAX_TYPE__ = long long unsigned int __USER_LABEL_PREFIX__ = __USING_SJLJ_EXCEPTIONS__ = 1 __VERSION__ = "4.1.1" __WCHAR_MAX__ = 2147483647 __WCHAR_TYPE__ = long int __WINT_TYPE__ = unsigned int __i586 = 1 __i586__ = 1 __pentium = 1 __pentium__ = 1 __pic__ = 1 __tune_i586__ = 1 __tune_pentium__ = 1 i386 = 1 unix = 1 Checking other possibilities; should already be listed above: __DATE__ = "Apr 16 2012" __FILE__ = "/tmp/def233.c" __GNUC__ = 4 __LINE__ = 25 __STDC__ = 1 __TIME__ = "11:37:38" 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