Mögliche Duplizieren:
size of a datatype without using sizeofImplementieren Sie Ihre eigene sizeof
Einer meiner Freundin in NVIDIA Interview vor kurzem erschienen, wo er zu implement his own sizeof in C
gefragt wurde. Ich habe versucht, dasselbe für die Praxis zu tun und erfolgreich zwei verschiedene Definitionen von sizeof
zu schreiben, von denen eine mit Variablen umgehen kann und andere mit Datentypen umgehen können, aber ich kann die beiden nicht zusammenführen. Gibt es einen Weg dazu? Auch ist es möglich, eine vollständige sizeof
in C.
Grifftypen wie int
zu implementieren, char
etc
#define my_sizeof(type) ((size_t)(((type *)0) + 1))
Griffe Variablen wie x
#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))
Natürlich tut, diese nur funktionieren, weil der Compiler effektiv sizeof Aufruf wird() unter der Haube. .. :) –
Es ist eine gute Idee für einen Lernenden wie Sie, container_of und offset_of_makros zu implementieren. Gutes Lernen! – Saurabh
Ein Grund, warum es schwer/unmöglich ist, ist natürlich, dass 'sizeof' keine Funktion ist. Diese Frage ist ein wenig wie "gibt es eine Möglichkeit,' = 'in C zu implementieren, ohne '='? "Zu verwenden. – unwind