Predefined Macros

Intel-specific predefined macros are described in the table below. The Default column indicates whether the macro is enabled (ON) or disabled (OFF) by default. The Architecture column indicates which Intel architecture supports the predefined macro. Predefined macros specified by the ISO/ANSI standard are not listed in the table. For a list of all macro definitions in effect, use the -E -dM options. For example:

Predefined Macros

Macro Name Default Architecture Description / When Used
__ECC=n n=700 Itanium architecture only Enables the Intel© C++ Compiler. Assigned value refers to version of the compiler (e.g., 700 is 7.00). Supported for legacy reasons. Use __INTEL_COMPILER instead.
__EDG__ ON Both Defined to have the value 1.
__ELF__ ON Both  
__GXX_ABI_VERSION=100   Both  
__i386 ON IA-32  
__i386__ ON IA-32  
i386 ON IA-32  
__ia64 ON Itanium architecture only  
__ia64__ ON Itanium architecture only  
ia64 ON Itanium architecture only  
__ICC=n ON
n
=700
IA-32 only Enables the Intel C++ Compiler. Assigned value refers to version of the compiler (e.g., 700 is 7.00). Supported for legacy reasons. Use __INTEL_COMPILER instead.
__INTEL_COMPILER=n ON
n
=700
Both Defines the compiler version. Defined as 700 for the Intel C++ Compiler 7.1.
_INTEGRAL_MAX_BITS=n n=64 Itanium architecture only Indicates support for the __int64 type.
__linux ON Both  
__linux__ ON Both  
linux ON Both  
__LONG_MAX=n n=9223372036854775807L Itanium architecture only  
__LP64 ON Itanium architecture only  
__lp64 ON Itanium architecture only  
__LP64__ ON Itanium architecture only  
_M_IA64=n n=64100 Itanium architecture only Indicates the value for the preprocessor identifier to reflect the Itanium® architecture.
__OPTIMIZE__ ON Both Not enabled if all optimizations are turned off.
_PGO_INSTRUMENT OFF Both Defined when compile with either -prof_gen or -prof_genx.
__PTRDIFF_TYPE__ ON Both For IA-32, __PTRDIFF_TYPE__=int
For Itanium architecture, __PTRDIFF_TYPE__=long
__SIZE_TYPE__ ON Both For IA-32, __SIZE_TYPE__=unsigned
For Itanium architecture, __SIZE_TYPE__=unsigned long
__unix ON Both  
__unix__ ON Both  
unix ON Both  
__USER_LABEL_PREFIX__ ON 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.