以下は、x86 などを前提としない、正しく移植可能なテストです:
#include <stdint.h>
#if UINTPTR_MAX == 0xffffffff
/* 32-bit */
#elif UINTPTR_MAX == 0xffffffffffffffff
/* 64-bit */
#else
/* wtf */
#endif
この「gcc」にタグを付けたので、試してみてください
#if __x86_64__
/* 64-bit */
#endif
以下は、x86 などを前提としない、正しく移植可能なテストです:
#include <stdint.h>
#if UINTPTR_MAX == 0xffffffff
/* 32-bit */
#elif UINTPTR_MAX == 0xffffffffffffffff
/* 64-bit */
#else
/* wtf */
#endif
この「gcc」にタグを付けたので、試してみてください
#if __x86_64__
/* 64-bit */
#endif