Zeichen mit der Konsole einlesen.

Caligulaminus hat gesagt.:
Die Multiplikation mit sizeof(char) kannste dir schenken, sizeof(char) ist per Definition 1.
Echt? Mit jedem Compiler? Und auch immer bei Unicode?

Echt. Der Standard sagt:

n3337-5.3.3.1 hat gesagt.:
[..] sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1.[..]

Edit: Das hat mit Unicode übrigens nichts zu tun. Ein char ist ein char. Ein Unicode code point ist etwas anderes und kann je nach code point, Kodierung und Breite des chars ein oder mehrere chars benötigen.
 
Zuletzt bearbeitet:
OT: Dann wundert es mich aber, dass es doch hin und wieder Code gibt, wo mit sizeof(char) multipliziert wird. Wahrscheinlich ist das auch nicht weiter schlimm, der Compiler wird das vermutlich weg optimieren. Ich dachte bis dato, dass es in komischen Konstellationen vorkommen kann, das es eben mal nicht 1 ist. Wieder was dazu gelernt. Aber ob das auch für zukünftige C-Standards gelten wird, steht noch auf einem anderen Blatt. ;-)
 
OT: Dann wundert es mich aber, dass es doch hin und wieder Code gibt, wo mit sizeof(char) multipliziert wird.
Ich find's nicht unbedingt verwunderlich, daß nicht jeder dieses "Detail" kennt. (Gänsefüßchen weil es wirklich fundamental ist.
Wahrscheinlich ist das auch nicht weiter schlimm, der Compiler wird das vermutlich weg optimieren.
Den Compiler will ich sehen, der eine Multiplikation mit eins nicht wegoptimiert.
Ich dachte bis dato, dass es in komischen Konstellationen vorkommen kann, das es eben mal nicht 1 ist.
Das ist im C(++) Universum so fundamental wie die Elementarladung - char ist die Elementarladung!
Wieder was dazu gelernt. Aber ob das auch für zukünftige C-Standards gelten wird, steht noch auf einem anderen Blatt. ;-)
sizeof(char) == 1 ist ein Fundament. Wer das ändert schafft eine andere Sprache.
 

Neue Beiträge

Zurück