sizeof结构成员

时间:2010-10-05 14:22:58

标签: c sizeof

如何在C中获取结构中成员的大小?

struct A
{
        char arr[64];
};

我需要这样的东西:

的sizeof(A :: ARR)

感谢

1 个答案:

答案 0 :(得分:38)

sizeof(((struct A*)0)->arr);

简单地说,将空指针强制转换为struct A*类型,但由于sizeof的操作数未被评估,这是合法的,并且允许您获取struct成员的大小而不创建实例结构。

基本上,我们假装它的一个实例存在于地址0,可以用于偏移和sizeof确定。

进一步详细说明,请阅读本文:

http://www.embedded.com/design/prototyping-and-development/4024941/Learn-a-new-trick-with-the-offsetof--macro