Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Ihr eigenes sizeof in C

So implementieren Sie Ihr eigenes sizeof in C

WBOY
WBOYnach vorne
2023-09-14 16:17:08648Durchsuche

So implementieren Sie Ihr eigenes sizeof in C

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.

Beispiel

#include <stdio.h>
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)
main(void) {
   int x = 10;
   char y = &#39;f&#39;;
   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));
}

Ausgabe

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen