Juni 2021

Padding-Bits (C99).

Kommender C-Standard C2X

Was bringt der kommende Standard an Neuerungen?

Bisher gab es die ISO-Standards C90, C99, C11 und C17. Nun steht vielleicht C22 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 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 © 2021 - Helmut Schellong

programmiersprache C standard c2x