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:
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 |
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.