Um sizeof() zu verwenden, können wir die Variable x verwenden, um den Wert zu erhalten, verwenden Sie &x und es wird seine Adresse ausdrucken. Wenn wir nun den Wert von &x erhöhen, kann es sein, dass er auf andere Weise ansteigt. Wenn nur ein Byte hinzugefügt wird, bedeutet dies, dass es vom Typ „Zeichen“ ist. Wenn der hinzugefügte Wert 4 ist, ist es vom Typ „int“ oder „float“ und so weiter. Indem wir also die Differenz zwischen &x + 1 und &x berechnen, können wir die Größe von x ermitteln.
Hier verwenden wir Makros, da der Datentyp in der Funktion nicht definiert ist. Außerdem verwenden wir (char*) für die Typkonvertierung, damit wir erfahren, wie viele Zeichentypdaten wir an dieser Stelle ablegen können. Weil der Zeichentyp ein Datenbyte belegt.
#include <stdio.h> #define my_sizeof(type) (char *)(&type+1)-(char*)(&type) main(void) { int x = 10; char y = 'f'; double z = 254748.23; printf("size of x: %d</p><p>", my_sizeof(x)); printf("size of y: %d</p><p>", my_sizeof(y)); printf("size of z: %d</p><p>", my_sizeof(z)); }
size of x: 4 size of y: 1 size of z: 8
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Ihr eigenes sizeof in C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!