The predefined macros available for the Intel® C++ Compiler are described in the table below. The Architecture column indicates which Intel architecture supports the 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:
prompt>icpc -E -dM prog1.cpp
| Macro Name | Value | Architecture |
|---|---|---|
| __DATE__ | Current date | Both |
| __ECC | 1 | Itanium® architecture only |
| __EDG__ | 1 | Both |
| __EDG_VERSION__ | 302 | Both |
| __ELF__ | 1 | Both |
| __extension__ | (no value) | Both |
| __GNUC__ | 3 | Both |
| __gnu_linux__ | 1 | Both |
| __GNUC_MINOR__ | 2 | Both |
| __GNUC_PATCHLEVEL__ | 0 | Both |
| __gnu_linux__ | 1 | Both |
| __GXX_ABI_VERSION | 102 | Both |
| __HONOR_STD | 1 | IA-32 only |
| __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 |
| __ICC | 800 | IA-32 only |
| __INTEL_COMPILER | 800 | 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 |
| __PTRDIFF_TYPE__ | int on IA-32 long on Itanium architecture |
Both |
| __QMSPP_ | 1 | IA-32 only |
| __REGISTER_PREFIX__ | (no value) | Both |
| __SIGNED_CHARS__ | 1 | Both |
| __SIZE_TYPE__ | unsigned on IA-32 unsigned long on Itanium architecture |
Both |
| __STDC__ | 1 | Both |
| __STDC_HOSTED__ | 1 | Both |
| __TIME__ | Current time | Both |
| __unix | 1 | Both |
| __unix__ | 1 | Both |
| unix | 1 | Both |
| __USER_LABEL_PREFIX__ | (no value) | Both |
| __VERSION__ | Both | |
| __WCHAR_TYPE__ | long int on IA-32 int on Itanium architecture |
Both |
| __WINT_TYPE__ | unsigned int | 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.