Was eigentlich gehört zum "Zeichentyp" in C11 - neben char
natürlich?Was zählt in C11 als Zeichentyp?
Genauer gesagt, die besonderen Ausnahmen für den Zeichentyp sein (zum Beispiel, dass jedes Objekt kann durch eine L-Wert-Expression von Zeichentyp zugegriffen werden - § 6.5/7 in C11-Standard sehen), auf die Betontypen tun sie bewerben sich? Sie scheinen gelten für uint8_t
und int8_t
von stdint.h
, aber ist das garantiert? Auf der anderen Seite betrachtet gcc char16_t
nicht von uchar.h
als "Zeichentyp".
Auch 'signed char' und' unsigned char'. –
Beachten Sie, dass 'int8_t' und' uint8_t' nur Aliase für vorhandene Typen sind. –
Es gab ernsthafte Vorschläge, um 'int8_t' und' uint8_t' auf erweiterten Integer-Typen aufzubauen, funktional identisch mit 'signed char' und' unsigned char' bzw. _except_, die sie nicht als "character types" für §6.5/7 zählen würden. Soweit ich weiß, hat keine Umsetzung diese Idee durchgesetzt, aber mir ist auch kein Grund bekannt, dass es verboten ist.(Der Vorteil wäre zum Beispiel, dass Sie jetzt String-Zeiger haben könnten, die _ididn_ nicht alle anderen Pointer im Programm aliasieren.) – zwol