Predefined Macros

The Intel® C++ Compiler supports the predefined macros listed in the following table. The compiler also includes predefined macros specified by the ISO/ANSI standard. See Conformance to the C Standard.

Macro Name Value Architecture
__BASE_FILE__ Name of source file Both
__cplusplus 1 Both
__EDG__ 1 Both
__EDG_VERSION__ 303 Both
__ELF__ 1 Both
__EXCEPTIONS Defined when -fno-exceptions is not used. IA-32 only
__GNUC__ 2 - if gcc version is less than 3.2
3 - if gcc version is 3.2, 3.3, or 3.4
Both
__gnu_linux__ 1 Both
__GNUC_MINOR__ 95 - if gcc version is less than 3.2
2 - if gcc version is 3.2
3 - if gcc version is 3.3
4 - if gcc version is 3.4
Both
__GNUC_PATCHLEVEL__ 0 Both
__GXX_ABI_VERSION 102 Both
__i386 1 IA-32 only
__i386__ 1 IA-32 only
i386 1 IA-32 only
__ia64 1 Itanium architecture only
__ia64__ 1 Itanium architecture only
ia64 1 Itanium architecture only
__INTEL_COMPILER 810 Both
__INTEL_COMPILER_BUILD_DATE YYYYMMDD Both
__INTEL_CXXLIB_ICC 1 when -cxxlib_icc option is specified during compilation. Both
__INTEL_RTTI__ 1 when -fno-rtti is not specified. Both
__INTEL_STRICT_ANSI__ 1 when -strict_ansi is specified. Both
_INTEGRAL_MAX_BITS 64 Itanium architecture only
__itanium__ 1 Itanium architecture only
__linux 1 Both
__linux__ 1 Both
linux 1 Both
__LONG_DOUBLE_SIZE__ 80 IA-32 only
__LONG_MAX__ 9223372036854775807L Itanium architecture only
__lp64 1 Itanium architecture only
__LP64__ 1 Itanium architecture only
_LP64 1 Itanium architecture only
__NO_INLINE__ 1 Both
__NO_MATH_INLINES 1 Both
__NO_STRING_INLINES 1 Both
__OPTIMIZE__ 1 Both
__PIC__ 1 when -fPIC is used. Both
__pic__ 1 when -fPIC is used. Both
_PGO_INSTRUMENT 1 when -prof_gen[x] is used. Both
__PTRDIFF_TYPE__ int
on IA-32
long

on Itanium
architecture
Both
__REGISTER_PREFIX__ (no value) Both
__SIGNED_CHARS__ 1 Both
__SIZE_TYPE__ unsigned
on IA-32
unsigned long

on Itanium
architecture
Both
__unix 1 Both
__unix__ 1 Both
unix 1 Both
__USER_LABEL_PREFIX__ (no value) Both
__VERSION__ "Intel(R) C++ gcc 3.0 mode" Both
__WCHAR_T 1 Both
__WCHAR_TYPE__ long int
on IA-32
int

on Itanium
architecture
Both
__WINT_TYPE__ unsigned int Both

Suppress Macro Definition

Use the -Uname  option to suppress any macro definition currently in effect for the specified name. The -U option performs the same function as an #undef preprocessor directive. You can use the -no-gcc option to disable the __GNUC_MINOR__, __GNUC_MINOR__, and __GNUC_PATCHLEVEL__ macros.