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

So implementieren Sie Ihr eigenes sizeof in C

WBOY
Freigeben: 2023-09-14 16:17:08
nach vorne
667 Leute haben es durchsucht

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));
}
Nach dem Login kopieren

Ausgabe

size of x: 4
size of y: 1
size of z: 8
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage