X86/GCC/Linux ## on x86-64bit host
gcc -posix -E -dM - < /dev/null
#if defined(__x86_64__) || defined(_M_X64)
/* x86 64-bit ----------------------------------------------- */
#elif defined(__i386) || defined(_M_IX86)
/* x86 32-bit ----------------------------------------------- */
#endif
Example
printf(__DATE__":"__TIME__"\n");
printf("__func__ is %s \n",__func__);
printf("Debug: %s:%s():%d\n",__FILE__,__FUNCTION__,__LINE__);
## on x86-64bit host
lake@localhost:~ $ gcc -dM -E -m32 - < /dev/null | grep -i sizeof
#define __SIZEOF_FLOAT80__ 12
#define __SIZEOF_INT__ 4
#define __SIZEOF_POINTER__ 4
#define __SIZEOF_LONG__ 4
#define __SIZEOF_LONG_DOUBLE__ 12
#define __SIZEOF_SIZE_T__ 4
#define __SIZEOF_WINT_T__ 4
#define __SIZEOF_PTRDIFF_T__ 4
#define __SIZEOF_FLOAT__ 4
#define __SIZEOF_FLOAT128__ 16
#define __SIZEOF_SHORT__ 2
#define __SIZEOF_WCHAR_T__ 4
#define __SIZEOF_DOUBLE__ 8
#define __SIZEOF_LONG_LONG__ 8
lake@localhost$ gcc -dM -E - </dev/null | grep -i sizeof
#define __SIZEOF_FLOAT80__ 16
#define __SIZEOF_INT__ 4
#define __SIZEOF_POINTER__ 8
#define __SIZEOF_LONG__ 8
#define __SIZEOF_LONG_DOUBLE__ 16
#define __SIZEOF_SIZE_T__ 8
#define __SIZEOF_WINT_T__ 4
#define __SIZEOF_PTRDIFF_T__ 8
#define __SIZEOF_FLOAT__ 4
#define __SIZEOF_FLOAT128__ 16
#define __SIZEOF_SHORT__ 2
#define __SIZEOF_INT128__ 16
#define __SIZEOF_WCHAR_T__ 4
#define __SIZEOF_DOUBLE__ 8
#define __SIZEOF_LONG_LONG__ 8
MinGW/Windows
gcc -posix -E -dM - < /dev/null
lhu@Windows10_64bit ~
$ gcc -posix -E -dM - < /dev/null |grep WIN
#define _WIN32 1
#define __WINT_MAX__ 0xffff
#define __WINT_MIN__ 0
#define __WIN32 1
#define __WINNT 1
#define __WINNT__ 1
#define __WIN32__ 1
#define __SIZEOF_WINT_T__ 2
#define WIN32 1
#define __WINT_TYPE__ short unsigned int
#define WINNT 1
ARM
arm-linux-gnueabihf-gcc -posix -E -dM - < /dev/null
Or
lake@localhost:~$ arm-linux-gnueabihf-gcc -E -dM -c test.c >> marco_ARM-gnueabihf.txt
lake@localhost:~/tmp$ grep ARM marco_ARM-gnueabihf.txt
#define __ARMEL__ 1
#define __ARM_FEATURE_UNALIGNED 1
#define __ARM_PCS_VFP 1
#define __ARM_ARCH_7A__ 1
#define __ARM_EABI__ 1
#define __ARM_FEATURE_DSP 1