Macros indicating the XL C/C++ compiler product

Macros related to the XL C/C++ compiler are always predefined, and are protected (the compiler will issue a warning if you try to undefine or redefine them).

Table 1. Compiler product predefined macros
Predefined macro name Description Predefined value
C only __IBMC__ Indicates the level of the XL C compiler. An integer in the format VRM, where :
V
Represents the version number
R
Represents the release number
M
Represents the modification number

In XL C/C++ V11.1, the value of the macro is 1110.

C++ only __IBMCPP__ Indicates the level of the XL C++ compiler. An integer in the format VRM, where :
V
Represents the version number
R
Represents the release number
M
Represents the modification number

In XL C/C++ V11.1, the value of the macro is 1110.

C only. __xlc__ Indicates the level of the XL C compiler. A string in the format "V.R.M.F", where:
V
Represents the version number
R
Represents the release number
M
Represents the modification number
F
Represents the fix level

In XL C/C++ V11.1, the value of the macro is "11.1.0.0".

__xlC__ Indicates the level of the XL C++ compiler. Using the XL C compiler also automatically defines this macro. A four-digit hexadecimal integer in the format 0xVVRR, where:
V
Represents the version number
R
Represents the release number

In XL C/C++ V11.1, the value of the macro is 0x0b01.