sizeof结构成员
如何在C中获取结构中成员的大小?
struct A { char arr[64]; };
我需要这样的东西:
的sizeof(A :: ARR)
谢谢
sizeof(((struct A*)0)->arr);
简而言之,将一个空指针强制转换为struct A*
的类型,但由于sizeof
的操作数未被计算,因此这是合法的,并且允许您在不创建结构实例的情况下获取struct成员的大小。
基本上,我们假装它的一个实例存在于地址0,并且可以用于偏移和sizeof
确定。
要进一步详细说明,请阅读本文: