Eventuali duplicati:
size of a datatype without using sizeofimplementare il proprio sizeof
Un mio amico ha recentemente apparso in un'intervista NVIDIA in cui è stato chiesto di implement his own sizeof in C
. Ho provato a fare lo stesso per la pratica e scrivere correttamente due diverse definizioni di sizeof
una delle quali può gestire variabili e altre possono gestire i tipi di dati, ma non riesco a unire le due. C'è un modo per farlo? Inoltre, è possibile implementare un completo sizeof
in C.
tipi Maneggiare come int
, char
ecc
#define my_sizeof(type) ((size_t)(((type *)0) + 1))
gestisce le variabili come x
#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))
Naturalmente, questi funzionano solo perché il compilatore è effettivamente chiamando sizeof() sotto il cofano. .. :) –
Sarà una buona idea per uno studente come te implementare container_of e offset_of di macro. Buon apprendimento! – Saurabh
Una ragione per cui è difficile/impossibile è ovviamente che 'sizeof' non è una funzione. Questa domanda è un po 'come "c'è un modo per implementare' = 'in C, senza usare' = '?". – unwind