Duplicar posible:
size of a datatype without using sizeofimplementar su propio sizeof
Uno de mi amigo recientemente apareció en la entrevista NVIDIA donde se le pidió a implement his own sizeof in C
. Traté de hacer lo mismo para la práctica y escribí con éxito dos definiciones diferentes de sizeof
, una de las cuales puede manejar variables y otra puede manejar tipos de datos, pero no puedo fusionar las dos. ¿Hay alguna manera de hacerlo? Además, es posible implementar un completo sizeof
en C.
tipos Handle como int
, etc char
#define my_sizeof(type) ((size_t)(((type *)0) + 1))
maneja las variables como x
#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))
Por supuesto, éstos sólo funcionan porque el compilador está llamando efectivamente sizeof() bajo el capó. .. :) –
Será una buena idea para un alumno como usted implementar container_of y offset_of macros. ¡Buen aprendizaje! – Saurabh
Una razón por la que es difícil/imposible es, por supuesto, que 'sizeof' no sea una función. Esta pregunta es un poco como "¿hay alguna manera de implementar' = 'en C, sin usar' = '?". – unwind