Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Vordefinierte Präprozessornamen

&pagelevel(3)&pagelevel

Beim Aufruf des Compilers mit cc, c11c89 oder CC sind abhängig vom gewählten Kommando und von der Eingabe bestimmter Optionen Präprozessor-Makros und -Prädikate vordefiniert.

Bei ein paar Makros können die Werte nicht verändert werden. Es geht weder auf der Kommandozeile noch per #define oder #undef in der Source. Die betroffenen Makros sind: __cplusplus, __STDC__, __STDC_VERSION__ und __SNI__STDCplusplus.

Vordefinierte Präprozessor-Makros (Defines)

 _BOOL

in den Sprachmodi C++ V3, C++ 2017 und C++ 2020 bei Option -K bool (Voreinstellung)

__CGLOBALS_PRAGMA

immer gesetzt

__cplusplus

in allen C++-Sprachmodi:

== 1 im Cfront-C++-Modus
== 2 im erweiterten C++ V3-Modus
== 199612L im strikten C++ V3-Modus
== 201703L im C++ 2017-Modus
== 202002L im C++ 2020-Modus

c_plusplus

in allen C++-Sprachmodi

__CFRONT_V3

im Cfront-C++-Modus

__EDG_NO_IMPLICIT_INCLUSION


in den Sprachmodi C++ V3, C++ 2017 und C++ 2020 , wenn im Rahmen der Template-Instanziierung implizites Inkludieren ausgeschaltet wurde (-K no_implicit_include)

__EXISTCGLOB

immer gesetzt

__HALF_TAG_LOOKUP

immer gesetzt

_IEEE

Option -K ieee_floats

LANGUAGE_C

immer definiert

_LANGUAGE_C

immer definiert

_LIBCPP_STD_VER

wird im Sprachmodus C++ 2020 vom Compiler auf den Wert 17 gesetzt
wird im Sprachmodus C++ 2017 von Bibliotheks-Headern auf den Wert 17 gesetzt

__LITERAL_ENCODING_ASCII


Option -K literal_encoding_ascii[_full]

__LITERAL_ENCODING_EBCDIC


Option -K literal_encoding_{ebcdic[_full]|native}

_LONGLONG

Option -K longlong

__OLD_SPECIALIZATION_SYNTAX

== 1 bei der Option -K old_specialization

_OSD_POSIX

immer gesetzt

__OSD_POSIX

immer gesetzt

__SHORT_NAMES

Ist definiert, wenn –K c_names_short angegeben wurde

__SIGNED_CHARS__

Option -K schar

__SMALL_VA_DCL

immer gesetzt

__SNI

in allen C-Modi und im Cfront-C++-Modus 

__SNI_HOST_BS2000

nie gesetzt (reserviert für Übersetzung in BS2000-Umgebung (SDF))

__SNI_HOST_BS2000_POSIX

immer gesetzt

__SNI_PRINTF_CHECK

immer gesetzt

__SNI__STDCplusplus

in allen C++-Sprachmodi:

== 0 in den erweiterten Sprachmodi (-X nostrict)
== 1 in den strikten Sprachmodi (-X strict)

__SNI_TARG_BS2000

nie gesetzt (reserviert für Übersetzung in BS2000-Umgebung (SDF))

__SNI_TARG_BS2000_POSIX

immer gesetzt

__STDC__

immer gesetzt:

== 0 in den erweiterten Sprachmodi (-X strict)
== 1 in den strikten Sprachmodi (-X strict)

__STDC_HOSTED__

immer gesetzt

__STDC_NO_ATOMICS__

immer gesetzt

__STDC_NO_COMPLEX__

immer gesetzt

__STDC_NO_THREADS__

immer gesetzt

__STDCPP_DEFAULT_NEW_ALIGNMENT__


immer gesetzt

== 8U

__STDC_UTF_16__

immer gesetzt

__STDC_UTF_32__

immer gesetzt

__STDC_VERS_CRTE__

im K&R-C-Modus undefiniert

== 199409L in den Sprachmodi C89, Cfront-C++ und C++ V3

== 201112L in den Sprachmodi C11, C++ 2017 und C++ 2020

__STDC_VERSION__

im K&R-C-Modus undefiniert

== 199409L in dem Sprachmodus C89 und in allen C++-Sprachmodi

== 201112L in dem Sprachmodus C11

_STRICT_STDC

in den strikten Sprachmodi (-X strict)

_WCHAR_T

Option -K wchar_t_keyword (Voreinstellung in den Modi C++ V3, C++ 2017 und C++ 2020)
Wenn diese Option nicht gesetzt ist (z.B. in den C-Modi oder im Cfront-C++-Modus), wird _WCHAR_T in diversen Standard-Includes definiert, um ein typedef für wchar_t abzusetzen.

_WCHAR_T_KEYWORD

Option -K wchar_t_keyword (Voreinstellung in den Modi C++ V3, C++ 2017 und C++ 2020)

_XPG_IV

beim Aufrufkommando c11 oder c89

Vordefinierte Präprozessor-Prädikate (#assert)

data_model(bit32)

immer gesetzt

cpu(7500)

bei Generierung von /390-Code

machine(7500)

bei Generierung von /390-Code

system(bs2000)

immer gesetzt