Typical predefined macros, obtained by executing something like: gcc -dM -E - < /dev/null MinGW: #define _WIN32 1 #define _X86_ 1 #define __HAVE_BUILTIN_SETJMP__ 1 #define __tune_pentium2__ 1 #define __i386__ 1 #define __SIZE_TYPE__ unsigned int #define __GNUC_PATCHLEVEL__ 0 #define _stdcall __attribute__((__stdcall__)) #define __MSVCRT__ 1 #define __USER_LABEL_PREFIX__ _ #define __STDC_HOSTED__ 1 #define __WIN32 1 #define __stdcall __attribute__((__stdcall__)) #define __tune_i686__ 1 #define __WCHAR_TYPE__ short unsigned int #define __MINGW32__ 1 #define WIN32 1 #define __WINT_TYPE__ unsigned int #define __GNUC__ 3 #define _cdecl __attribute__((__cdecl__)) #define __tune_pentium3__ 1 #define __tune_pentiumpro__ 1 #define __fastcall __attribute__((__fastcall__)) Cygwin: #define _X86_ 1 #define __HAVE_BUILTIN_SETJMP__ 1 #define __tune_pentium2__ 1 #define __unix__ 1 #define unix 1 #define __i386__ 1 #define __SIZE_TYPE__ unsigned int #define __GNUC_PATCHLEVEL__ 0 #define _stdcall __attribute__((__stdcall__)) #define __CYGWIN__ 1 #define __unix 1 #define __USER_LABEL_PREFIX__ _ #define __STDC_HOSTED__ 1 #define __stdcall __attribute__((__stdcall__)) #define __tune_i686__ 1 #define __WCHAR_TYPE__ short unsigned int #define __WINT_TYPE__ unsigned int #define __GNUC__ 3 #define _cdecl __attribute__((__cdecl__)) #define __tune_pentium3__ 1 #define __tune_pentiumpro__ 1 #define __fastcall __attribute__((__fastcall__)) #define _fastcall __attribute__((__fastcall__)) #define __CYGWIN32__ 1 #define __GXX_ABI_VERSION 102 #define i386 1 #define __GNUC_MINOR__ 2 #define __STDC__ 1 #define __PTRDIFF_TYPE__ int #define __REGISTER_PREFIX__ #define __cdecl __attribute__((__cdecl__)) #define __NO_INLINE__ 1 #define __i386 1 #define __VERSION__ "3.2 20020927 (prerelease)" #define __declspec(x) __attribute__((x)) Linux/x86: #define __HAVE_BUILTIN_SETJMP__ 1 #define __unix__ 1 #define unix 1 #define __i386__ 1 #define __SIZE_TYPE__ unsigned int #define __ELF__ 1 #define __GNUC_PATCHLEVEL__ 2 #define __linux 1 #define __unix 1 #define __linux__ 1 #define __USER_LABEL_PREFIX__ #define linux 1 #define __STDC_HOSTED__ 1 #define __WCHAR_TYPE__ long int #define __gnu_linux__ 1 #define __WINT_TYPE__ unsigned int #define __GNUC__ 3 #define __GXX_ABI_VERSION 102 #define i386 1 #define __GNUC_MINOR__ 2 #define __STDC__ 1 #define __PTRDIFF_TYPE__ int #define __tune_i386__ 1 #define __REGISTER_PREFIX__ #define __NO_INLINE__ 1 #define __i386 1 #define __VERSION__ "3.2.2 20030109 (Debian prerelease)" Djgpp: #define __DJGPP_MINOR 3 #define __i386__ 1 #define __GO32__ 1 #define __i386 1 #define GO32 1 #define __GNUC_MINOR__ 95 #define __DJGPP__ 2 #define __tune_pentium__ 1 #define __DJGPP 2 #define i386 1 #define __MSDOS 1 #define __MSDOS__ 1 #define __unix 1 #define DJGPP_MINOR 3 #define __unix__ 1 #define __GNUC__ 2 #define DJGPP 2 #define MSDOS 1 #define __DJGPP_MINOR__ 3 #define unix 1 #define __GO32 1 Mac OS X: #define __MACH__ 1 #define __NATURAL_ALIGNMENT__ 1 #define __APPLE__ 1 #define __GNUC_MINOR__ 95 #define __ppc__ 1 #define __GNUC__ 2 #define __STDC__ 1 #define __DYNAMIC__ 1 #define __APPLE_CC__ 937 #define __BIG_ENDIAN__ 1 SunOS/Sparc: #define __GCC_NEW_VARARGS__ 1 #define __sparc 1 #define __svr4__ 1 #define __GNUC_MINOR__ 95 #define __sun 1 #define sparc 1 #define __sun__ 1 #define __unix 1 #define __unix__ 1 #define __SVR4 1 #define sun 1 #define __GNUC__ 2 #define __sparc__ 1 #define unix 1 Linux/Mips: #define __LANGUAGE_C 1 #define R3000 1 #define __linux__ 1 #define __MIPSEB 1 #define _LANGUAGE_C 1 #define _MIPS_SZLONG 32 #define linux 1 #define __mips__ 1 #define __mips 1 #define __SIZE_TYPE__ unsigned int #define _R3000 1 #define __GNUC_MINOR__ 95 #define MIPSEB 1 #define __pic__ 1 #define __R3000__ 1 #define _MIPS_SZINT 32 #define __PTRDIFF_TYPE__ int #define mips 1 #define _MIPS_SZPTR 32 #define ___mips 1 #define __unix 1 #define __R3000 1 #define __unix__ 1 #define _MIPSEB 1 #define __PIC__ 1 #define _MIPS_FPSET 32 #define __GNUC__ 2 #define ___mips__ 1 #define __linux 1 #define _MIPS_ISA _MIPS_ISA_MIPS1 #define LANGUAGE_C 1 #define __ELF__ 1 #define _mips 1 #define _MIPS_SIM _MIPS_SIM_ABI32 #define __MIPSEB__ 1 #define unix 1 FreeBSD/x86: #define __FreeBSD__ 4 #define __FreeBSD_cc_version 460001 #define __i386__ 1 #define __i386 1 #define __GNUC_MINOR__ 95 #define i386 1 #define __unix 1 #define __unix__ 1 #define __GNUC__ 2 #define __ELF__ 1 #define unix 1