Ich lese gerade einen Entwurf der C11-Spezifikation. Die neu eingeführten Schlüsselwörter: _Bool, _Alignof, _AtomicAlle fühlen sich wie benutzerdefinierte Erweiterungen an, anstatt wie Standardschlüsselwörter struct, union, int.
Mir ist klar, dass der Standard im Wesentlichen aus standardisierten Erweiterungen besteht ... aber das ist schrecklich! Vielleicht werden wir uns bald __Long_Long_Reallylong_Integer_MSVC_2020_tin den Standard einschleichen!
Ist die Abwärtskompatibilität von nicht standardisiertem Code der einzige Grund für den neuen Stil der Schlüsselwörter?
<stdbool.h>muss die Header-Datei einer C11-Implementierung ein Präprozessor-Makro enthalten, z #define bool _Bool. Dies ist eine saubere Lösung, da sie die Abwärtskompatibilität beibehält, es jedoch jedem neuen Code, der die neue Header-Datei enthält, ermöglicht, die attraktivere Syntax zu verwenden.