コンパイラー・オプション設定に関連したマクロ

以下のマクロは、ソース入力特性、出力ファイル特性、および最適化などさまざまな機能についてテストすることができます。 これらのマクロはすべて、特定のコンパイラー・オプションまたはサブオプション、あるいはそのサブオプションを暗黙指定する呼び出しまたはプラグマによって事前定義されます。機能を使用可能にするサブオプションが有効でない場合、そのマクロは未定義です。

表 1. 汎用のオプション関連の事前定義マクロ
事前定義マクロ名 説明 事前定義値 以下のコンパイラー・オプションまたは同等のプラグマが有効である場合に事前定義されます。
__ALTIVEC__ Vector データ型がサポートされていることを示します。 (保護されていない) 1 -qaltivec
__64BIT__ 64 ビットのコンパイル・モードが有効であることを示します。 1 -q64
_CHAR_SIGNED, __CHAR_SIGNED__ デフォルトの文字タイプが signed char であることを示します。 1 -qchars=signed
_CHAR_UNSIGNED, __CHAR_UNSIGNED__ デフォルトの文字タイプが unsigned char であることを示します。 1 -qchars=unsigned
__DEBUG_ALLOC__ 標準メモリー管理関数のデバッグ・バージョンが使用されていることを示します。 1 -qheapdebug
__IBM_GCC_ASM GCC インラインの asm ステートメントがサポートされていることを示します。 1

-qasm=gcc および -qlanglvl=extc99 | extc89 | extended または -qkeyword=asm

0

-qnoasm および -qlanglvl=extc99 | extc89 | extended または -qkeyword=asm

__IBM_DFP__ 10 進浮動小数点型がサポートされていることを示します。 1 -qdfp
__IBM_DFP_SW_EMULATION__ 10 進浮動小数点の計算が、ハードウェア命令においてではなく、ソフトウェア・エミュレーションによって実装されていることを示します。 1 -qfloat=dfpemulate
_IBMSMP IBM SMP ディレクティブが認識されることを示します。 1 -qsmp
__IBM_UTF_LITERAL UTF-16 および UTF-32 ストリング・リテラルがサポートされていることを示します。 1

LANGLVL(EXTENDED)

__LONGDOUBLE64 long double 型のサイズが 64 ビットであることを示します。 1 -qnoldbl128
__LONGDOUBLE128 long double 型のサイズが 128 ビットであることを示します。 1 -qldbl128
__OPTIMIZE__ 最適化レベルが有効であることを示します。 2 -O | -O2
3 -O3 | -O4 | -O5
__OPTIMIZE_SIZE__ コード・サイズに対する最適化が有効であることを示します。 1 -O | -O2 | -O3 | -O4 | -O5 および -qcompact
__VEC__ Vector データ型がサポートされていることを示します。 10205 -qaltivec