sizeof in C und C++

OP #4433834
Lesenswert?
• ▲
▼
Hallo zusammen,

sizeof gibt in C die Größe des char-Datentyps in Byte zurück. char muss 
nicht unbedingt 8 Bit groß sein. Was bekomme ich für einen Wert wenn auf 
einer bestimmten Architektur ein char 14 Bit groß ist?

In "The C++ Programming language" steht
1
[...]the sizes of other types are quoted in multiples of the size of a char[...]

Bedeutet das, dass "größere" Datentypen immer ein Vielfaches von char 
sein müssen?

Gruß
Dennis
Gast #4433842
Lesenswert?
• ▲
▼
Dennis S. schrieb:
> sizeof gibt in C die Größe des char-Datentyps in Byte zurück.
Fast ;-) In C(++) ist per Definition 1 char = 1 Byte, aber 1 Byte ist 
nicht notwendigerweise 8 Bits. sizeof(X) gibt die Größe von X in 
Vielfachen von der Größe eines char zurück. Somit ist sizeof(char) 
immer 1, denn char ist nunmal genau 1 char groß.
Mit CHAR_BIT * sizeof(X) erhält man die genaue Größe eines jeden 
Datentyps in bits.
OP #4433868
Lesenswert?
• ▲
▼
Dr. Sommer schrieb:
> Fast ;-) In C(++) ist per Definition 1 char = 1 Byte, aber 1 Byte ist
> nicht notwendigerweise 8 Bits. sizeof(X) gibt die Größe von X in
> Vielfachen von der Größe eines char zurück. Somit ist sizeof(char)
> immer 1, denn char ist nunmal genau 1 char groß.
> Mit CHAR_BIT * sizeof(X) erhält man die genaue Größe eines jeden
> Datentyps in bits.

Ahhh... stimmt, da war was. Vielen Dank für die Ausführungen! Ich war 
durch die Beschreibung von Stroustrup irgendwie durcheinander gekommen.

Gruß
Dennis

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren