可能重复:
不使用sizeof的数据类型的大小
我的一位朋友最近出现在NVIDIA的采访中,他被要求参加implement his own sizeof in C.我试图在练习中做同样的事情,并成功写出两个不同的定义,sizeof其中一个可以处理变量,其他可以处理数据类型,但我无法合并这两个.有没有办法这样做?此外,是否可以sizeof在C中实现完整.
处理类型,如int,char等
#define my_sizeof(type) ((size_t)(((type *)0) + 1))
Run Code Online (Sandbox Code Playgroud)
处理变量之类的 x
#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))
Run Code Online (Sandbox Code Playgroud) c ×1