プラットフォーム間でのアプリケーションの移植を可能にするために以下の事前定義マクロが提供されています。

事前定義マクロ名 説明
__BASE_FILE__ 基本ソース・ファイルの完全修飾ファイル名に対して定義されます。
_BIG_ENDIAN 1 に定義されます。
__BIG_ENDIAN__ 1 に定義されます。
_CALL_SYSV 1 に定義されます。
__CHAR_UNSIGNED__ オプション -qchars=unsigned または #pragma chars(unsigned) が有効な場合、1 に定義されます。このマクロは、オプション -qchars=signed または #pragma chars(signed) が有効な場合、未定義になります。
__ELF__ ELF オブジェクト・モデルが有効なことを示すために、このプラットフォームでは 1 に定義されます。
C++ のみ __EXCEPTIONS -qeh オプションが有効な場合、1 に定義されます。そうでない場合は、定義されません。
__GXX_WEAK__ C の場合は定義されません。C++ の場合、このマクロは gcc V3.3 の場合 0、g++ V3.5 の場合は 1 に定義されます。
__HOS_LINUX__ ホストのオペレーティング・システムが Linux の場合、1 に定義されます。そうでない場合は、定義されません。
__linux 1 に定義されます。
__linux__ 1 に定義されます。
__OPTIMIZE__ 最適化レベル -O または -O2 では 2 に定義され、 最適化レベル -O3 またはそれ以上では 3 に定義されます。
__OPTIMIZE_SIZE__ オプション -qcompact-O が設定されている場合、1 に定義されます。そうでない場合は、定義されません。
__powerpc 1 に定義されます。
__powerpc__ 1 に定義されます。
__powerpc64__ 64 ビット・モードでコンパイルするときは、1 に定義されます。 そうでない場合は、定義されません。
__PPC 1 に定義されます。
__PPC__ 1 に定義されます。
__PPC64__ 64 ビット・モードでコンパイルするときは、1 に定義されます。 そうでない場合は、定義されません。
__SIZE_TYPE__ このプラットフォームでの基礎となる型 size_t に定義されます。Linux 上で、32 ビット・モードでは、マクロは unsigned int として定義されます。64 ビット・モードでは、マクロは unsigned long として定義されます。
__TOS_LINUX__ ターゲットのオペレーティング・システムが Linux の場合、1 に定義されます。そうでない場合は、定義されません。
__unix すべての UNIX 型のプラットフォームでは 1 に定義されます。そうでない場合は、定義されません。
__unix__ すべての UNIX 型のプラットフォームでは 1 に定義されます。そうでない場合は、定義されません。