sizeof
lima-city → Forum → Programmiersprachen → C/C++ und D
angabe
anmerkung
beispiel
bestimmen
bit
byte
code
compiler
datei
double
einheit
folge
kontrollieren
operator
plattform
programm
record
ren
typ
zeichen
-
W?re nett, wenn mir einer mal erkl?ren k?nnte, was der Befehl bewirkt und wof?r man den braucht.
Thy im Voraus.... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Der sizeof - Operator dient dazu, die Speichergr??e von Datenobjekten zu bestimmen.
Die errechnete Gr??e wird in char-Einheiten (also in Bytes) geliefert. Dieser Operator
kann sowohl auf Datentypen als auch auf Variable, Konstante und Literale angewendet
werden. Auf einem 32-bit Compiler ergeben sich folgende Werte:
sizeof(char) liefert den Wert 1
sizeof(short) liefert den Wert 2
sizeof(int) liefert den Wert 4
sizeof(long) liefert den Wert 4
sizeof(float) liefert den Wert 4
sizeof(double) liefert den Wert 8
sizeof(long double) liefert den Wert 10 -
kann man damit nicht auch irgendwie kontrollieren, ob dieser datentyp f?r eine variable ausreicht???
-
Hi,
p3t3r hat sich ja viel M?he gegeben, ich habe nur noch Anmerkungen:
Die Angaben sind bei C maschinenabh?ngig, d.h. Du kannst Dich darauf nicht verlassen:
Wenn ein Compiler zum Beispiel mehrbytige Zeichens?tze (Unicode UTF-16 ...) unterst?tzt, so ist sizeof (char) eben nicht 1 sondern z.B. 2.
Wenn man Programme plattform- und compilerunabh?nging machen will, setzt man sizeof (variable) oder sizeof (typ) ein:
Bsp:
Ich habe eine Folge von Records (struct), die sollen bin?r in einer Datei abgelegt werden:
struct Data { byte size, char name [32], int age; }; Data persons [25]; ... fwrite (fh, &persons [0], sizeof persons); // Auch wenn sich der Record ?ndert, bleibt der Code gleich! ....
Kids
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage