http://sourceforge.net/p/predef/wiki/Compilers/
Type | Macro |
---|
Identification | _ACC_ |
Type | Macro | Format | Description |
---|
Identification | __CMB__ | | |
Version | __VERSION__ | VRRR | V=Version RRR=Revision |
Version | __REVISION__ | P | P=Patch |
Version | __BUILD__ | VRRRPPP | Build number |
Example
Altium MicroBlaze C | __VERSION__ | __REVISION__ | __BUILD__ |
---|
1.0r2 | 1000 | 2 | |
1.22.2 | | | 1022001 |
Type | Macro | Format | Description |
---|
Identification | __CHC__ | | |
Version | __VERSION__ | VRRR | V=Version RRR=Revision |
Version | __REVISION__ | P | P=Patch Beta releases set this to -1 |
Version | __BUILD__ | VRRRPPP | Build number |
Example
Altium C-to-Hardware | __VERSION__ | __REVISION__ | __BUILD__ |
---|
2.1r1 | 2001 | 1 | |
1.22.2 | | | 1022001 |
Type | Macro |
---|
Identification | __ACK__ |
Type | Macro | Format | Description |
---|
Identification | __CC_ARM | | |
Version | __ARMCC_VERSION | VRPBBB | V = Version R = Revision P = Patch BBB = Build |
Notice that the __ARMCC_VERSION
macro is also used as version indicator for Norcroft C, but that the format is different.
Example
Realview C | __ARMCC_VERSION |
---|
3.0 | 300503 |
Type | Macro | Format | Description |
---|
Identification | AZTEC_C __AZTEC_C__ | | |
Version | __VERSION | VRR | V = Version RR = Revision |
Example
Aztec C | __VERSION |
---|
5.20 | 520 |
Type | Macro | Format |
---|
Identification | __BORLANDC__ | |
Version | __BORLANDC__ | ? |
Identification | __CODEGEARC__ | |
Version | __CODEGEARC__ | From C++ Builder 2006 |
Example
Borland C++ | C++ Builder | __BORLANDC__ | __CODEGEARC__ |
---|
2.0 | | 0x200 | |
3.0 | | 0x400 | |
3.1 | | 0x410 | |
4.0 | | 0x452 | |
5.0 | | 0x500 | |
5.02 | 1.0 | 0x520 | |
| 3.0 | 0x530 | |
| 4.0 | 0x540 | |
5.5 | 5.0 | 0x550 | |
5.51 | | 0x551 | |
5.6.4 | | 0x562 | |
| 2006 | 0x570 | 0x570 |
| 2007 | 0x590 | 0x590 |
| 2009 | 0x613 | 0x613 |
| 2010 | 0x621 | 0x621 |
| XE | 0x630 | 0x630 |
| XE2 | 0x640 | 0x640 |
| XE3 | 0x650 | 0x650 |
| XE4 | 0x660 | 0x660 |
Type | Macro | Format | Description |
---|
Identification | __CC65__ | | |
Version | __CC65__ | 0xVRP | V = Version R = Revision P = Patch |
Example
Version | __CC65__ |
---|
2.10.1 | 0x2A1 |
Type | Macro | Format |
---|
Identification | __clang__ | |
Version | __clang_major__ | Version |
Version | __clang_minor__ | Revision |
Version | __clang_patchlevel__ | Patch |
Notice that clang also defines the GNU C version macros, but you should use the clang feature checking macros to detect the availability of various features.
The values of the __clang_major__
, __clang_minor__
, and __clang_patchlevel__
macros are not consistent across distributions of the Clang compiler. For example, the Clang 3.1 distribution available at http://clang.llvm.org defines__clang_major__
and __clang_minor__
as 3
and 1
respectively. The version of Clang distributed with Apple XCode 4.4 is branded as "Apple Clang 4.0" and derives from the open source Clang 3.1 distribution, but defines these macros with the values 4
and 0
respectively. Apple's Clang distribution can be identified by the presence of the __apple_build_version__
macro.
Type | Macro | Format | Description |
---|
Identification | __COMO__ | | |
Version | __COMO_VERSION__ | VRR | V = Version RR = Revision |
Example
Comeau C++ | __COMO_VERSION__ |
---|
2.3 | 230 |
Type | Macro | Format | Description |
---|
Identification | __DECC | | C compiler |
Version | __DECC_VER | VVRRTPPPP | VV = Version RR = Revision T = Type (9 = official) PPPP = Patch |
Identification | __DECCXX | | C++ compiler |
Version | __DECCXX_VER | As __DECC_VER | |
Identification | __VAXC | | Obsolete |
Identification | VAXC | | Obsolete |
Example
Compaq C/C++ | __DECC_VER |
---|
6.0-001 | 60090001 |
Type | Macro |
---|
Identification | __convexc__ |
Type | Macro |
---|
Identification | __COMPCERT__ |
Type | Macro |
---|
Identification | __COVERITY__ |
Cray C
Type | Macro | Description |
---|
Identification | _CRAYC | |
Version | _RELEASE | Version |
Version | _RELEASE_MINOR | Revision |
Type | Macro | Format | Description |
---|
Identification | __DCC__ | 1 | |
Version | __VERSION_NUMBER__ | VRPP | V = Version R = Revision PP = Patch |
Example
Diab C/C++ | __VERSION_NUMBER__ |
---|
4.4g | 4426 |
Type | Macro |
---|
Identification | _DICE |
Type | Macro | Format | Description |
---|
Identification | __DMC__ | | |
Version | __DMC__ | 0xVRP | V = Version R = Revision P = Patch |
Example
Digital Mars | __DMC__ |
---|
7.0 | 0x700 |
7.2 | 0x720 |
8.0 | 0x800 |
Type | Macro | Format | Description |
---|
Identification | __SYSC__ | | |
Version | __SYSC_VER__ | VRRPP | V = Version RR = Revision PP = Patch |
Example
Systems/C | __SYSC_VER__ |
---|
1.80.32 | 18032 |
Type | Macro | Description |
---|
Identification | __DJGPP__ | |
Version | __DJGPP__ | Version |
Version | __DJGPP_MINOR__ | Revision |
Identification | __GO32__ | Defined by DJGPP 1.x |
Example
DJGPP | __DJGPP__ | __DJGPP_MINOR__ |
---|
2.01 | 2 | 1 |
Type | Macro | Format | Description |
---|
Identification | __EDG__ | | |
Version | __EDG_VERSION__ | VRR | V = Version RR = Revision |
Example
EDG C++ | __EDG_VERSION__ |
---|
2.30 | 230 |
2.45 | 245 |
Type | Macro | Description |
---|
Identification | __PATHCC__ | |
Version | __PATHCC__ | Version |
Version | __PATHCC_MINOR__ | Revision |
Version | __PATHCC_PATCHLEVEL__ | Patch |
Example
EKOPath | __PATHCC__ | __PATHCC_MINOR__ | __PATHCC_PATCHLEVEL__ |
---|
2.0 | 2 | 0 | 0 |
Fujitsu C++
Type | Macro |
---|
Identification | __FCC_VERSION |
Type | Macro | Description |
---|
Identification | __GNUC__ | |
Version | __GNUC__ | Version |
Version | __GNUC_MINOR__ | Revision |
Version | __GNUC_PATCHLEVEL__ | Patch (introduced in version 3.0) |
Notice that the meaning of the __GNUC__
macro has changed subtly over the years, from identifying the GNU C/C++ compiler to identifying any compiler that implements the GNU compiler extensions (see the Feature request - a macro defined for GCCdiscussion for further information). For example, the Intel C++ on Linux also defines these macros from version 8.1 (see the Intel C++ Compiler 8.1 for Linux Release Notes and Intel Compilers for Linux: Compatibility with GNU Compilers.)
Example
GNU C/C++ | __GNUC__ | __GNUC_MINOR__ | __GNUC_PATCHLEVEL__ |
---|
2.7.x | 2 | 7 | N/A |
3.0.2 | 3 | 0 | 2 |
Alternative Version
If you prefer a single version macro, you can define the following yourself.
#if defined(__GNUC__)
# if defined(__GNUC_PATCHLEVEL__)
# define __GNUC_VERSION__ (__GNUC__ * 10000 \
+ __GNUC_MINOR__ * 100 \
+ __GNUC_PATCHLEVEL__)
# else
# define __GNUC_VERSION__ (__GNUC__ * 10000 \
+ __GNUC_MINOR__ * 100)
# endif
#endif
The format of this new macro is:
Type | Macro | Format | Description |
---|
Version | __GNUC_VERSION__ | VVRRPP | VV = Version RR = Revision PP = Patch |
Example of Alternative Version
GNU C/C++ | __GNUC_VERSION__ |
---|
2.7.x | 20700 |
3.0.2 | 30002 |
Type | Macro | Format | Description |
---|
Identification | __ghs__ | | |
Version | __GHS_VERSION_NUMBER__ | VRP | V = Version R = Revision P = Patch |
Version | __GHS_REVISION_DATE__ | Epoch time | |
Example
Green Hill C/C++ | __GHS_VERSION_NUMBER__ |
---|
4.2.1 | 421 |
HP ANSI C
Type | Macro |
---|
Identification | __HP_cc |
Type | Macro | Format | Description |
---|
Identification | __HP_aCC | | |
Version | __HP_aCC | 1 | From version A.01.15 (and A.03.13) |
Version | __HP_aCC | VVRRPP | VV = Version RR = Revision PP = Patch From version A.01.21 (and A.03.25) |
Example
HP aCC | __HP_aCC |
---|
A.01.21 | 012100 |
IAR C/C++
Type | Macro | Format | Description |
---|
Identification | __IAR_SYSTEMS_ICC__ | | |
Version | __VER__ | VRR | V = Version RR = Revision |
Example
IAR C/C++ | __VER__ |
---|
3.34 | 334 |
Type | Macro | Format | Description |
---|
Identification | __xlc__ | | |
Identification | __xlC__ | | |
Version | __xlC__ | 0xVVRR | VV = Version RR = Revision |
Version | __xlC_ver__ | 0x0000PPBB | PP = Patch BB = Build |
Identification | __IBMC__ | | From ? |
Identification | __IBMCPP__ | | From ? |
Version | __IBMC__ __IBMCPP__ | VRP | V = Version R = Revision P = Patch |
Notice that the z/OS C/C++ compiler also defines __IBMC__
and __IBMCPP__
macros, but with a different syntax. See the entry on the z/OS C/C++ compiler below for further information.
Example
IBM XL C/C++ | __xlC__ | __xlC_ver__ |
---|
3.1 | 0x0301 | |
4.5 | 0x0405 | |
5.0 | 0x0500 | |
12.01.0000.0004 | 0x0C01 | 0x00000004 |
This is the XL C/C++ compiler for mainframes (e.g. z/OS). The entry on XL C/C++ has been split into two for clarity.
Type | Macro | Format | Description |
---|
Identification | __IBMC__ | | |
Identification | __IBMCPP__ | | |
Version | __IBMC__ __IBMCPP__ | NVRRM | N = Product (0 = C/370, 1 = MVS, 2 = OS/390, 4 = z/OS) V = Version RR = Revision P = Patch Defined for z/OS XL C/C++ |
Version | __COMPILER_VER__ | 0xNVRRPPPP | N = Product (see above) V = Version RR = Revision PPPP = Patch Defined for z/OS XL C/C++ |
Notice that XL C/C++ also defines __IBMC__
and __IBMCPP__
macros, but with a different syntax. You can use __xlC__
(only defined for XL C/C++) or __COMPILER_VER__
(only defined for z/OS C/C++) to distinguish between the two. Alternatively, the macro identifying z/OS (__MVS__
) can be used to distinguish between them.
#if defined(__IBMC__) || defined(__IBMCPP__)
# if defined(__COMPILER_VER__)
/* z/OS C/C++ so __IBMC__ is defined as NVRRM */
# else
/* XL C/C++ so __IBMC__ is defined as VRP */
# endif
#endif
Example
IBM z/OS XL C/C++ | __IBMC__ | __COMPILER_VER__ |
---|
1.7 | 41070 | 0x41070000 |
1.13 | 41130 | 0x410D0000 |
Type | Macro |
---|
Identification | __IMAGECRAFT__ |
Type | Macro | Format | Description |
---|
Identification | __INTEL_COMPILER | | |
Identification | __ICC | | Obsolete |
Identification | __ECC | | Obsolete |
Identification | __ICL | | |
Version | __INTEL_COMPILER | VRP | V = Version R = Revision P = Patch |
Version | __INTEL_COMPILER_BUILD_DATE | YYYYMMDD | YYYY = Year MM = Month DD = Day |
Example
Intel C/C++ | __INTEL_COMPILER | __INTEL_COMPILER_BUILD_DATE |
---|
5.0 | 500 | |
6.0 | 600 | |
8.0 | 800 | |
9.0 | 900 | 20060222 |
KAI C++
Type | Macro | Format | Description |
---|
Identification | __KCC | | |
Version | __KCC_VERSION | 0xVRPP | V = Version R = Revision PP = Patch (a = 01, b = 02, ...) |
Example
KAI C++ | __KCC_VERSION |
---|
4.0d | 4004 |
Type | Macro | Format | Description |
---|
Identification | __CA__ | | |
Identification | __KEIL__ | | |
Version | __CA__ | VRR | V = Version RR = Revision |
Example
Keil CARM | __CA__ |
---|
1.01 | 101 |
Type | Macro | Format | Description |
---|
Identification | __C166__ | | |
Version | __C166__ | VRR | V = Version RR = Revision |
Example
Keil C166 | __C166__ |
---|
5.01 | 501 |
Type | Macro | Format | Description |
---|
Identification | __C51__ | | |
Identification | __CX51__ | | |
Version | __C51__ | VRR | V = Version RR = Revision |
Example
Keil C51 | __C51__ |
---|
7.01 | 701 |
Type | Macro |
---|
Identification | __LCC__ |
Type | Macro |
---|
Identification | __llvm__ |
Type | Macro |
---|
Identification | __HIGHC__ |
Type | Macro | Format | Description |
---|
Identification | __MWERKS__ | | |
Identification | __CWCC__ | | From 4.2.0 |
Version | __MWERKS__ | 1 | Until CodeWarrior 7 |
Version | __MWERKS__ | 0xVRPP | V = Version R = Revision PP = Patch From CodeWarrior 7 |
Version | __CWCC__ | 0xVRPP | V = Version R = Revision PP = Patch From 4.2.0 |
Example
Metrowerks C/C++ | __MWERKS__ | __CWCC__ |
---|
2.0 | 0x2000 | |
2.2 | 0x2200 | |
4.2.0 | 0x4200 | 0x4200 |
Type | Macro | Format | Description |
---|
Identification | _MSC_VER | | |
Version | _MSC_VER | VVRR | VV = Version RR = Revision |
Version | _MSC_FULL_VER | VVRRPPPP | VV = Version RR = Revision PPPP = Patch From Visual C++ 6.0 Processor Pack |
Version | _MSC_FULL_VER | VVRRPPPPP | VV = Version RR = Revision PPPPP = Patch From Visual C++ 8.0 |
Version | _MSC_BUILD | B | B = Build number From Visual C++ 9.0 |
Example
Visual C++ 1 2 | _MSC_VER | _MSC_FULL_VER |
---|
1.0 | 800 | |
3.0 | 900 | |
4.0 | 1000 | |
4.2 | 1020 | |
5.0 | 1100 | |
6.0 | 1200 | |
6.0 SP6 | 1200 | 12008804 |
7.0 | 1300 | 13009466 |
7.1 (2003) | 1310 | 13103077 |
8.0 (2005) | 1400 | 140050727 |
9.0 (2008) | 1500 | 150021022 |
9.0 SP1 | 1500 | 150030729 |
10.0 (2010) | 1600 | 160030319 |
10.0 (2010) SP1 | 1600 | 160040219 |
11.0 (2012) | 1700 | 170050727 |
12.0 (2013) | 1800 | 180021005 |
Type | Macro |
---|
Identification | _MRI |
Type | Macro |
---|
Identification | __NDPC__ __NDPX__ |
MinGW (formerly known as MinGW32) is a toolchain for creating 32 Bit Windows executables. The MinGW-w64 projects offers toolchains for creating 32 Bit and 64 Bit Windows executables. The following table shows which macros are defined by each toolchain:
Type | Macro | Description | MinGW32 | MinGW-w64 32 Bit | MinGW-w64 64 Bit |
---|
Identification | __MINGW32__ | | defined | defined | defined |
Version | __MINGW32_MAJOR_VERSION | Version | defined | defined | defined |
Version | __MINGW32_MINOR_VERSION | Revision | defined | defined | defined |
Identification | __MINGW64__ | | - | - | defined |
Version | __MINGW64_VERSION_MAJOR | Version | - | defined | defined |
Version | __MINGW64_VERSION_MINOR | Revision | - | defined | defined |
Notice that __MINGW32_MAJOR_VERSION
, __MINGW32_MINOR_VERSION
, __MINGW64_VERSION_MAJOR
, and__MINGW64_VERSION_MINOR
are only defined if appropriate headers are included. Appropriate headers are
<stdlib.h>
, <stdio.h>
, <windows.h>
, <windef.h>
, and probably more.
Examples
__MINGW32_MAJOR_VERSION | __MINGW32_MINOR_VERSION | __MINGW64_VERSION_MAJOR | __MINGW64_VERSION_MINOR | Description |
---|
2 | 4 | | | MinGW32 2.4 |
3 | 20 | | | MinGW32 3.20 |
3 | 11 | 2 | 0 | MinGW-w64 2.0 |
Type | Macro | Format | Description |
---|
Identification | __sgi | | |
Identification | sgi | | |
Version | _COMPILER_VERSION | VRP | V = Version R = Revision P = Patch Until ? |
Version | _SGI_COMPILER_VERSION | VRP | V = Version R = Revision P = Patch From ? |
Example
MIPSpro | _COMPILER_VERSION | _SGI_COMPILER_VERSION |
---|
6.0.2 | 602 | |
7.2.1 | 721 | |
7.4.4 | | 744 |
Type | Macro |
---|
Identification | MIRACLE |
Type | Macro | Format | Description |
---|
Identification | __MRC__ | | |
Identification | MPW_C | | |
Identification | MPW_CPLUS | | |
Version | __MRC__ | 0xVVRR | VV = Version RR = Revision |
Example
MPW C++ | __MRC__ |
---|
5.0 | 0x500 |
Type | Macro | Format | Description |
---|
Identification | __CC_NORCROFT | | |
Version | __ARMCC_VERSION | V.R | V = Version R = Revision |
Notice that __ARMCC_VERSION
is assigned a floating-point number, so it cannot be used by the preprocessor to compare versions.
Example
Norcroft C | __ARMCC_VERSION |
---|
4.69 | 4.69 |
4.90 | 4.90 |
Type | Macro |
---|
Identification | __NWCC__ |
Type | Macro | Format | Description |
---|
Identification | __OPEN64__ | | Contains the full version as a string |
Identification | __OPENCC__ | | |
Version | __OPENCC__ | V | V = Version |
Version | __OPENCC_MINOR__ | R | R = Revision |
Version | __OPENCC_PATCHLEVEL__ | P.B | P = Patch B = Build |
Notice that __OPENCC_PATCHLEVEL__
can be a floating-point number (e.g. 5.2
for Open64 version 4.2.5.2) so it cannot be used by the preprocessor to compare patch-levels.
Type | Macro |
---|
Identification | ORA_PROC |
Type | Macro | Format | Description |
---|
Identification | __SUNPRO_C | | C compiler |
Version | __SUNPRO_C | 0xVRP | V = Version R = Revision P = Patch Until version 5.9 |
Version | __SUNPRO_C | 0xVRRP | V = Version RR = Revision P = Patch From later releases |
Identification | __SUNPRO_CC | | C++ compiler |
Version | __SUNPRO_CC | As __SUNPRO_C | |
Example
Compiler version | Solaris Studio | __SUNPRO_C |
---|
4.2 | 4.2 | 0x420 |
5.0 | 5.0 | 0x500 |
5.2 | 6.1 | 0x520 |
5.3 | 6.2 | 0x530 |
5.4 | 7 | 0x540 |
5.5 | 8 | 0x550 |
5.6 | 9 | 0x560 |
5.7 | 10 | 0x570 |
5.8 | 11 | 0x580 |
5.9 | 12 | 0x590 |
5.10 | 12.1 | 0x5100 |
5.11 | 12.2 | 0x5110 |
5.12 | 12.3 | 0x5120 |
The name of Oracle Solaris Studio has changed over the years (e.g. Sun Studio, Sun Workshop, Forte Developer) but we do not make this distinction in the table above.
Pacific C
Type | Macro |
---|
Identification | __PACIFIC__ |
Palm C/C++
Type | Macro | Format | Description |
---|
Identification | _PACC_VER | | |
Version | _PACC_VER | 0xVRRPPBBB | V = Version RR = Revision PP = Patch BBB = Build |
Example
Palm C/C++ | _PACC_VER |
---|
1.0.0.13 | 0x1000000D |
Type | Macro | Format | Description |
---|
Identification | __POCC__ | | |
Version | __POCC__ | VRR | V = Version RR = Revision |
Example
Pelles C | __POCC__ |
---|
3.00 | 300 |
Type | Macro | Description |
---|
Identification | __PGI | |
Version | __PGIC__ | Version |
Version | __PGIC_MINOR__ | Revision |
Version | __PGIC_PATCHLEVEL__ | Patch |
Example
PGI C/C++ | __PGIC__ | __PGIC_MINOR__ | __PGIC_PATCHLEVEL__ |
---|
7.0.1 | 7 | 0 | 1 |
11.9 | 11 | 9 | 0 |
Renesas C/C++
Type | Macro | Format | Description |
---|
Identification | __RENESAS__ | | |
Identification | __HITACHI__ | | |
Version | __RENESAS_VERSION__ | 0xVVRR | V = Version R = Revision P = Patch |
Version | __RENESAS_VERSION__ | 0xVVRRPP00 | From ? |
Version | __HITACHI_VERSION__ | 0xVVRR | As above |
Example
Renesas C/C++ | __HITACHI_VERSION__ | __RENESAS_VERSION__ |
---|
5.1C | 0x0501 | |
8.0 | 0x8000 | 0x8000 |
1.00.00 | | 0x01000000 |
Type | Macro | Format | Description |
---|
Identification | SASC | | |
Identification | __SASC | | |
Identification | __SASC__ | | |
Version | __VERSION__ | | Until ? |
Version | __REVISION__ | | Until ? |
Version | __SASC__ | VRR | V = Version RR = Revision From ? |
Example
SAS/C | __SASC__ | __VERSION__ | __REVISION__ |
---|
5.10 | | 5 | 10 |
6.50 | 650 | | |
Type | Macro |
---|
Identification | _SCO_DS |
Type | Macro | Format | Description |
---|
Identification | SDCC | | |
Version | SDCC | VRP | V = Version R = Revision P = Patch |
Example
SDCC Version | SDCC Macro |
---|
2.5.6 | 256 |
Type | Macro |
---|
Identification | __SNC__ |
Type | Macro | Description |
---|
Identification | __VOSC__ | |
Version | __VOSC__ | 0 = K&R compiler 1 = ANSI C compiler |
Symantec C++
Type | Macro | Format | Description |
---|
Identification | __SC__ | | |
Version | __SC__ | 0xVVRR | VV = Version RR = Revision |
Type | Macro |
---|
Identification | __TenDRA__ |
Texas Instruments C/C++ Compiler
Type | Macro | Format | Description |
---|
Identification | __TI_COMPILER_VERSION__ | | |
Identification | _TMS320C6X | | All C6000 compilers |
Version | __TI_COMPILER_VERSION__ | VVVRRRPPP | VVV = Version RRR = Revision PPP = Patch |
Example
TI C/C++ | __TI_COMPILER_VERSION__ |
---|
4.9.1 | 4009001 |
7.3.1 | 7003001 |
Type | Macro | Description |
---|
Version | THINKC3 | Version 3.x |
Version | THINKC4 | Version 4.x |
Type | Macro |
---|
Identification | __TINYC__ |
Type | Macro | Format | Description |
---|
Identification | __TURBOC__ | | |
Version | __TURBOC__ | 0xVVRR | VV = Version RR = Revision This pattern does not apply to the values between 0x295 and 0x400. |
Example
Turbo C | Turbo C++ | __TURBOC__ |
---|
2.01 | | 0x201 |
| 1.00 | 0x295 |
| 1.01 | 0x296 |
| 2.00 | 0x297 |
Ultimate C/C++
Type | Macro | Description |
---|
Identification | _UCC | |
Version | _MAJOR_REV = V _MINOR_REV = R | V = Version R = Revision |
Example
Ultimate C/C++ | _MAJOR_REV | _MINOR_REV |
---|
2.1 | 2 | 1 |
Type | Macro | Format | Description |
---|
Identification | __USLC__ | | |
Version | __SCO_VERSION__ | VRRYYYYMM | V = Version RR = Revision YYYY = Year MM = Month |
Example
USL C | __SCO_VERSION__ | Description |
---|
3.2 | 302199801 | |
3.4 | 304200805 | UnixWare 7.1.4 UDK C++ (CC) |
4.2 | 402200805 | UnixWare 7.1.4 UDK C (cc) |
Type | Macro |
---|
Identification | __VBCC__ |
Type | Macro | Format | Description |
---|
Identification | __WATCOMC__ | | |
Version | __WATCOMC__ | VVRR | VV = Version RR = Revision |
Notice that Watcom C++ became Open Watcom C++ after version 11.0, and the official version numbering (but not the version macro) was restated at version 1.0.
Example
Watcom C++ | Open Watcom C++ | __WATCOMC__ |
---|
10.5 | | 1050 |
11.0 | | 1100 |
| 1.0 | 1200 |
| 1.7 | 1270 |
Type | Macro | Format | Description |
---|
Identification | __ZTC__ | | |
Version | __ZTC__ | 0xVRP | V = Version R = Revision P = Patch |