可能重复:
不使用 sizeof 的数据类型的大小
我的一位朋友最近出现在 NVIDIA 采访中,他被邀请参加implement his own sizeof in C
。我尝试做同样的练习并成功编写了两个不同的定义,sizeof
其中一个可以处理变量,另一个可以处理数据类型,但我无法合并两者。有什么办法吗?sizeof
此外,是否有可能在 C中实现一个完整的。
处理 类型int
等char
#define my_sizeof(type) ((size_t)(((type *)0) + 1))
处理变量,如x
#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))