Navigation

2.2.7 sizeof - Operator

Der Operator sizeof liefert einen Wert vom Typ unsigned, der die Länge des Speicherbereiches (gemessen in Bytes) angibt, den der Operand benötigt.
allg.: sizeof ausdruck
liefert die Anzahl der Bytes, die zum Speichern von ausdruck benötigt werden
ausdruck wird nicht ausgewertet (keine Nebeneffekte)

oder: sizeof ( typ_spezifikation)
liefert die Anzahl der Bytes, die benötigt werden um ein Objekt des Typs typ_spezifikation zu speichern.

sizeof gilt als Konstantenausdruck, d.h. seine Berechnung erfolgt durch den Compiler und kann zur Initialisierung benutzt werden.

sizeof ist nicht auf Operanden vom Typ Funktion, void und Felder ohne Längenangabe anwendbar.

BEISPIELE/b227.c: 

#include <stdio.h>
main()                            /* sizeof */
{    
     int a[10], n, i;

     i = 256; n = sizeof(a);
     printf("Laenge von a: %d\n",n);
     printf("Laenge von i: %d\n",sizeof(int));
}

Dieser Operator wird oft auf Strukturen angewendet. Deren Länge ergibt sich nicht zwangsläufig aus der Summe der Länge von allen Stukturelementen. Ursache sind "Füllbytes", die zur Ausrichtung der Strukturelemenete eingeschoben werden (auf Wortgrenzen der konkreten Maschine). Navigation