gcc プリプロセッサ
gccで
E付でプリプロセッサが終わった状態で止めたやつと、
cpp0を指定して、プリプロセッサが終わった状態で止めたやつの
サイズの差が気になって調べていたら、
/usr/include/machine/types.hの
/* * Deal with 64-bit types, which are not defined by ANSI C. */ #if __GNUC__ >= 2 /* This ugly hack prevents warnings from -pedantic. */ typedef long int64_t __attribute__ ((__mode__(__DI__))); typedef unsigned long u_int64_t __attribute__ ((__mode__(__DI__))); typedef long int64m_t __attribute__ ((__mode__(__DI__))); typedef unsigned long u_int64m_t __attribute__ ((__mode__(__DI__))); #else /* The following are probably correct for most other compilers */ typedef long long int64_t; typedef unsigned long long u_int64_t; typedef long long int64m_t; typedef unsigned long long u_int64m_t; #endif
に書いてあった。
gccドライバ経由だと、
/usr/libexec/gcc-2.95.3/i386-unknown-bsdielf4.2/2.95.3/cpp0 -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dunix -D__i386__ -Di386 -D__bsdi__ -Dbsdi -D__ELF__ -D__GAS__=2 -D__GAS_MINOR__=10 -D__unix__ -D__i386__ -D__i386__ -D__bsdi__ -D__bsdi__ -D__ELF__ -D__GAS__=2 -D__GAS_MINOR__=10 -D__unix -D__i386 -D__bsdi -Asystem(unix) -Asystem(bsd) -Acpu(i386) -Amachine(i386) -traditional -$ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -
で指定してあるからね。