Bisher gab es die ISO-Standards C90, C99, C11 und C17. Nun steht sehr wahrscheinlich C23 vor der Tür. Dieser wird der fünfte ISO-Standard sein. C17 davor enthält lediglich Korrekturen und Klarstellungen, jedoch keine neuen Ausstattungsmerkmale.
• Die neuen Schlüsselwörter _Decimal32,
_Decimal64, _Decimal128
bezeichnen neue Gleitkomma-Formate, deren Elemente nicht den
Zahlenbereich 0|1, sondern 0|1|2|3|4|5|6|7|8|9 enthalten.
Das ist die Zahlenbasis 10.
In diesen Gleitkomma-Formaten hat also eine Division durch 10
ein exaktes Resultat.
Die notwendigen Funktionen (wie fprintf) unterstützen diese neuen Formate.
Und es gibt hunderte (!) neue mathematische Funktionen deshalb.
Das Makro __STDC_IEC_60559_DFP__ wird gesetzt sein, wenn diese Formate
unterstützt werden.
Mantissen-Digits: 7, 16, 34
DEC128_MAX: 9.999999999999999999999999999999999e6144DL
Suffix: df dd dl DF DD DL
• Neu ist das Bit-Format bei Konstanten:
0b10101010…
0B1100110011001100…
Entsprechende Funktionsunterstützung ist vorhanden.
Das hätte auch wesentlich früher vorgenommen werden können.
Beispielsweise im Zuge des Typs _Bool, neu in C99.
Beim Umgang mit Bytes ist eine solche Darstellung oft nützlich.
• Neu ist typeof(ausdruck), mit ähnlichem Aussehen wie sizeof(ausdruck). Dies ist seit langem vom Compiler gcc bekannt.
• Neu sind Attribute:
deprecated
fallthrough
maybe_unused
nodiscard
Angewandt: