事前定義済みマクロ

インテル® C++ コンパイラは、以下の表の事前定義済みマクロをサポートします。また、ISO/ANSI 標準で指定される事前定義マクロもサポートします。「C の標準規格との適合性」 を参照してください。

マクロ名 アーキテクチャ
__BASE_FILE__ ソースファイルの名前 両方
__cplusplus 1 両方
__EDG__ 1 両方
__EDG_VERSION__ 303 両方
__ELF__ 1 両方
__EXCEPTIONS -fno-exceptions が使用されていない場合に定義されます。 IA-32 のみ
__GNUC__ gcc のバージョンが 3.2 より前の場合は 2
gcc のバージョンが 3.2、3.3、または 3.4 の場合は 3
両方
__gnu_linux__ 1 両方
__GNUC_MINOR__ gcc のバージョンが 3.2 より前の場合は 95
gcc のバージョンが 3.2 の場合は 2
gcc のバージョンが 3.3 の場合は 3
gcc のバージョンが 3.4 の場合は 4
両方
__GNUC_PATCHLEVEL__ 0 両方
__GXX_ABI_VERSION 102 両方
__i386 1 IA-32 のみ
__i386__ 1 IA-32 のみ
i386 1 IA-32 のみ
__ia64 1 Itanium® アーキテクチャのみ
__ia64__ 1 Itanium アーキテクチャのみ
ia64 1 Itanium アーキテクチャのみ
__INTEL_COMPILER 810 両方
__INTEL_COMPILER_BUILD_DATE YYYYMMDD 両方
__INTEL_CXXLIB_ICC コンパイル中に -cxxlib_icc オプションが指定された場合は 1 両方
__INTEL_RTTI__ -fno-rtti が指定されていない場合は 1 両方
__INTEL_STRICT_ANSI__ -strict_ansi が指定された場合は 1 両方
_INTEGRAL_MAX_BITS 64 Itanium アーキテクチャのみ
__itanium__ 1 Itanium アーキテクチャのみ
__linux 1 両方
__linux__ 1 両方
linux 1 両方
__LONG_DOUBLE_SIZE__ 80 IA-32 のみ
__LONG_MAX__ 9223372036854775807L Itanium アーキテクチャのみ
__lp64 1 Itanium アーキテクチャのみ
__LP64__ 1 Itanium アーキテクチャのみ
_LP64 1 Itanium アーキテクチャのみ
__NO_INLINE__ 1 両方
__NO_MATH_INLINES 1 両方
__NO_STRING_INLINES 1 両方
__OPTIMIZE__ 1 両方
__PIC__ -fPIC が使用される場合は 1 両方
__pic__ -fPIC が使用される場合は 1 両方
_PGO_INSTRUMENT -prof_gen[x] が使用される場合は 1 両方
__PTRDIFF_TYPE__ int
(IA-32)
long

(Itanium アーキテクチャ)
両方
__REGISTER_PREFIX__ (値なし) 両方
__SIGNED_CHARS__ 1 両方
__SIZE_TYPE__ unsigned
(IA-32)
unsigned long

(Itanium アーキテクチャ)
両方
__unix 1 両方
__unix__ 1 両方
unix 1 両方
__USER_LABEL_PREFIX__ (値なし) 両方
__VERSION__ "Intel® C++ gcc 3.0 mode" 両方
__WCHAR_T 1 両方
__WCHAR_TYPE__ long int
(IA-32)
int

(Itanium アーキテクチャ)
両方
__WINT_TYPE__ unsigned int 両方

マクロ定義の抑止

指定された name で現在有効になっているマクロ定義を抑止するには、-Uname  オプションを使用します。-U オプションは、#undef プリプロセッサ・ディレクティブと同じ機能を果たします。-no-gcc オプションを使用して、__GNUC_MINOR____GNUC_MINOR__、および __GNUC_PATCHLEVEL__ マクロを無効にできます。