Juni 2021

Padding-Bits (C99).

Kommender C-Standard C23

Was bringt der kommende Standard an Neuerungen?

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:  deprecatedfallthroughmaybe_unusednodiscard
Angewandt:
[[deprecated]] void f [[deprecated]] (void);
[[deprecated, hal::daisy]] double nine1000(double);
[[deprecated]] [[hal::daisy]] double nine1000(double);
[[deprecated]] double nine1000 [[hal::daisy]] (double);
[[deprecated("use 'three' instead")]]



Copyright © Helmut Schellong - 2021

programmiersprache C standard c2x c23