Predefined Macros

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

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.