Powiel możliwe:
size of a datatype without using sizeofzaimplementować własną sizeof
jeden z moich znajomych ostatnio pojawiła się w wywiadzie NVIDIA gdzie został poproszony o implement his own sizeof in C
. Próbowałem zrobić to samo dla praktyki i napisałem dwie różne definicje: sizeof
, z których jedna może obsługiwać zmienne, a druga obsługuje typy danych, ale nie jestem w stanie połączyć tych dwóch. Czy jest jakiś sposób to zrobić? Ponadto, jest to możliwe do wykonania kompletnego sizeof
w C.
rodzaje obchodzić jak int
, char
itp
#define my_sizeof(type) ((size_t)(((type *)0) + 1))
Uchwyty zmienne jak x
#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))
Oczywiście, te działają tylko dlatego, że kompilator jest skutecznie wywołanie sizeof() pod maską. .. :) –
Dobrym pomysłem dla uczącego się takiego jak ty jest zaimplementowanie container_of i offset_of makr. Dobra nauka! – Saurabh
Jednym z powodów, dla których jest to trudne/niemożliwe, jest oczywiście, że 'sizeof' nie jest funkcją. To pytanie brzmi trochę "czy istnieje sposób wdrożenia' = 'w C, bez użycia' = '?". – unwind