-
Notifications
You must be signed in to change notification settings - Fork 3
Compilers
Please submit updates/corrections via the process described on the wiki home page.
Type | Macro |
---|---|
Identification | _ACC_ |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __CMB__ |
||
Version | __VERSION__ |
VRRR | V=VersionRRR=Revision |
Version | __REVISION__ |
P | P=Patch |
Version | __BUILD__ |
VRRRPPP | Build number |
Altium MicroBlaze C | __VERSION__ |
__REVISION__ |
__BUILD__ |
---|---|---|---|
1.0r2 | 1000 | 2 | |
1.22.2 | 1022001 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __CHC__ |
||
Version | __VERSION__ |
VRRR | V=VersionRRR=Revision |
Version | __REVISION__ |
P | P=PatchBeta releases set this to -1 |
Version | __BUILD__ |
VRRRPPP | Build number |
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 = VersionR = RevisionP = PatchBBB = Build |
Notice that the __ARMCC_VERSION
macro is also used as version indicator for Norcroft C, but that the format is different.
Realview C | __ARMCC_VERSION |
---|---|
3.0 | 300503 |
Type | Macro | Format | Description |
---|---|---|---|
Identification |
AZTEC_C __AZTEC_C__
|
||
Version | __VERSION |
VRR | V = VersionRR = Revision |
Aztec C | __VERSION |
---|---|
5.20 | 520 |
Type | Macro | Format |
---|---|---|
Identification | __BORLANDC__ |
|
Version | __BORLANDC__ |
? |
Identification | __CODEGEARC__ |
|
Version | __CODEGEARC__ |
From C++ Builder 2006 |
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 = VersionR = RevisionP = Patch |
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 = VersionRR = Revision |
Comeau C++ | __COMO_VERSION__ |
---|---|
2.3 | 230 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __DECC |
C compiler | |
Version | __DECC_VER |
VVRRTPPPP | VV = VersionRR = RevisionT = Type (9 = official)PPPP = Patch |
Identification | __DECCXX |
C++ compiler | |
Version | __DECCXX_VER |
As __DECC_VER | |
Identification | __VAXC |
Obsolete | |
Identification | VAXC |
Obsolete |
Compaq C/C++ | __DECC_VER |
---|---|
6.0-001 | 60090001 |
Type | Macro |
---|---|
Identification | __convexc__ |
Type | Macro |
---|---|
Identification | __COMPCERT__ |
Type | Macro |
---|---|
Identification | __COVERITY__ |
Type | Macro | Description |
---|---|---|
Identification | _CRAYC |
|
Version | _RELEASE |
Version |
Version | _RELEASE_MINOR |
Revision |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __DCC__ |
1 | |
Version | __VERSION_NUMBER__ |
VRPP | V = VersionR = RevisionPP = Patch |
Diab C/C++ | __VERSION_NUMBER__ |
---|---|
4.4g | 4426 |
Type | Macro |
---|---|
Identification | _DICE |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __DMC__ |
||
Version | __DMC__ |
0xVRP | V = VersionR = RevisionP = Patch |
Digital Mars | __DMC__ |
---|---|
7.0 | 0x700 |
7.2 | 0x720 |
8.0 | 0x800 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __SYSC__ |
||
Version | __SYSC_VER__ |
VRRPP | V = VersionRR = RevisionPP = Patch |
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 |
DJGPP | __DJGPP__ |
__DJGPP_MINOR__ |
---|---|---|
2.01 | 2 | 1 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __EDG__ |
||
Version | __EDG_VERSION__ |
VRR | V = VersionRR = Revision |
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 |
EKOPath | __PATHCC__ |
__PATHCC_MINOR__ |
__PATHCC_PATCHLEVEL__ |
---|---|---|---|
2.0 | 2 | 0 | 0 |
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 GCC discussion 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.)
GNU C/C++ | __GNUC__ |
__GNUC_MINOR__ |
__GNUC_PATCHLEVEL__ |
---|---|---|---|
2.7.x | 2 | 7 | N/A |
3.0.2 | 3 | 0 | 2 |
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 = VersionRR = RevisionPP = Patch |
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 = VersionR = RevisionP = Patch |
Version | __GHS_REVISION_DATE__ |
Epoch time |
Green Hill C/C++ | __GHS_VERSION_NUMBER__ |
---|---|
4.2.1 | 421 |
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 = VersionRR = RevisionPP = PatchFrom version A.01.21 (and A.03.25) |
HP aCC | __HP_aCC |
---|---|
A.01.21 | 12100 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __IAR_SYSTEMS_ICC__ |
||
Version | __VER__ |
VRR | V = VersionRR = Revision |
IAR C/C++ | __VER__ |
---|---|
3.34 | 334 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __xlc__ |
||
Identification | __xlC__ |
||
Version | __xlC__ |
0xVVRR | VV = VersionRR = Revision |
Version | __xlC_ver__ |
0x0000PPBB | PP = PatchBB = Build |
Identification | __IBMC__ |
From ? | |
Identification | __IBMCPP__ |
From ? | |
Version |
__IBMC__ __IBMCPP__
|
VRP | V = VersionR = RevisionP = 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.
IBM XL C/C++ | __xlC__ |
__xlC_ver__ |
__IBMCPP__ |
---|---|---|---|
3.1 | 0x0301 | ||
4.5 | 0x0405 | 450 | |
5.0 | 0x0500 | 500 | |
12.01.0000.0004 | 0x0C01 | 0x00000004 | 1210 |
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 = VersionRR = RevisionP = PatchDefined for z/OS XL C/C++ |
Version | __COMPILER_VER__ |
0xNVRRPPPP | N = Product (see above)V = VersionRR = RevisionPPPP = PatchDefined 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
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 = VersionR = RevisionP = Patch |
Version | __INTEL_COMPILER_BUILD_DATE |
YYYYMMDD | YYYY = YearMM = MonthDD = Day |
Intel C/C++ | __INTEL_COMPILER |
__INTEL_COMPILER_BUILD_DATE |
---|---|---|
5.0 | 500 | |
6.0 | 600 | |
8.0 | 800 | |
9.0 | 900 | 20060222 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __KCC |
||
Version | __KCC_VERSION |
0xVRPP | V = VersionR = RevisionPP = Patch (a = 01, b = 02, ...) |
KAI C++ | __KCC_VERSION |
---|---|
4.0d | 4004 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __CA__ |
||
Identification | __KEIL__ |
||
Version | __CA__ |
VRR | V = VersionRR = Revision |
Keil CARM | __CA__ |
---|---|
1.01 | 101 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __C166__ |
||
Version | __C166__ |
VRR | V = VersionRR = Revision |
Keil C166 | __C166__ |
---|---|
5.01 | 501 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __C51__ |
||
Identification | __CX51__ |
||
Version | __C51__ |
VRR | V = VersionRR = Revision |
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 = VersionR = RevisionPP = PatchFrom CodeWarrior 7 |
Version | __CWCC__ |
0xVRPP | V = VersionR = RevisionPP = PatchFrom 4.2.0 |
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 = VersionRR = Revision |
Version | _MSC_FULL_VER |
VVRRPPPP | VV = VersionRR = RevisionPPPP = PatchFrom Visual C++ 6.0 Processor Pack |
Version | _MSC_FULL_VER |
VVRRPPPPP | VV = VersionRR = RevisionPPPPP = PatchFrom Visual C++ 8.0 |
Version | _MSC_BUILD |
B | B = Build numberFrom Visual C++ 9.0 |
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.
__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 = VersionR = RevisionP = PatchUntil ? |
Version | _SGI_COMPILER_VERSION |
VRP | V = VersionR = RevisionP = PatchFrom ? |
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 = VersionRR = Revision |
MPW C++ | __MRC__ |
---|---|
5.0 | 0x500 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __CC_NORCROFT |
||
Version | __ARMCC_VERSION |
V.R | V = VersionR = Revision |
Notice that __ARMCC_VERSION
is assigned a floating-point number, so it cannot be used by the preprocessor to compare versions.
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 = PatchB = 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 = VersionR = RevisionP = PatchUntil version 5.9 |
Version | __SUNPRO_C |
0xVRRP | V = VersionRR = RevisionP = PatchFrom later releases |
Identification | __SUNPRO_CC |
C++ compiler | |
Version | __SUNPRO_CC |
As __SUNPRO_C
|
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.
Type | Macro |
---|---|
Identification | __PACIFIC__ |
Type | Macro | Format | Description |
---|---|---|---|
Identification | _PACC_VER |
||
Version | _PACC_VER |
0xVRRPPBBB | V = VersionRR = RevisionPP = PatchBBB = Build |
Palm C/C++ | _PACC_VER |
---|---|
1.0.0.13 | 0x1000000D |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __POCC__ |
||
Version | __POCC__ |
VRR | V = VersionRR = Revision |
Pelles C | __POCC__ |
---|---|
3.00 | 300 |
Type | Macro | Description |
---|---|---|
Identification | __PGI |
|
Version | __PGIC__ |
Version |
Version | __PGIC_MINOR__ |
Revision |
Version | __PGIC_PATCHLEVEL__ |
Patch |
PGI C/C++ | __PGIC__ |
__PGIC_MINOR__ |
__PGIC_PATCHLEVEL__ |
---|---|---|---|
7.0.1 | 7 | 0 | 1 |
11.9 | 11 | 9 | 0 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __RENESAS__ |
||
Identification | __HITACHI__ |
||
Version | __RENESAS_VERSION__ |
0xVVRR | V = VersionR = RevisionP = Patch |
Version | __RENESAS_VERSION__ |
0xVVRRPP00 | From ? |
Version | __HITACHI_VERSION__ |
0xVVRR | As above |
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 = VersionRR = RevisionFrom ? |
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 = VersionR = RevisionP = Patch |
SDCC Version |
SDCC Macro |
---|---|
2.5.6 | 256 |
Type | Macro |
---|---|
Identification | __SNC__ |
Type | Macro | Description |
---|---|---|
Identification | __VOSC__ |
|
Version | __VOSC__ |
0 = K&R; compiler1 = ANSI C compiler |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __SC__ |
||
Version | __SC__ |
0xVVRR | VV = VersionRR = Revision |
Type | Macro |
---|---|
Identification | __TenDRA__ |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __TI_COMPILER_VERSION__ |
||
Identification | _TMS320C6X |
All C6000 compilers | |
Version | __TI_COMPILER_VERSION__ |
VVVRRRPPP | VVV = VersionRRR = RevisionPPP = Patch |
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 = VersionRR = RevisionThis pattern does not apply to the values between 0x295 and 0x400. |
Turbo C | Turbo C++ | __TURBOC__ |
---|---|---|
2.01 | 0x201 | |
1.00 | 0x295 | |
1.01 | 0x296 | |
2.00 | 0x297 |
Type | Macro | Description |
---|---|---|
Identification | _UCC |
|
Version |
_MAJOR_REV = V_MINOR_REV = R |
V = VersionR = Revision |
Ultimate C/C++ | _MAJOR_REV |
_MINOR_REV |
---|---|---|
2.1 | 2 | 1 |
Type | Macro | Format | Description |
---|---|---|---|
Identification | __USLC__ |
||
Version | __SCO_VERSION__ |
VRRYYYYMM | V = VersionRR = RevisionYYYY = YearMM = Month |
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 = VersionRR = 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.
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 = VersionR = RevisionP = Patch |