是否有任何简单的方法来找到for循环中的结构成员大小

时间:2013-12-07 22:03:23

标签: c structure sizeof

enum
{
    ARRAY1,
    ARRAY2,
    ARRAY3,
    ARRAY4,
    ARRAY5,
    STMEMBERCOUNT
};

STMEMBERCOUNT显示成员列入结构

typedef struct {
   char array1[26];
   char array2[31];
   char array3[31];
   char array4[11];
   char array5[11];
}ST_ARRAY;


main()
{
    int i;
    int sizeofmember[STMEMBERCOUNT];

    for(i = 0; i < STMEMBERCOUNT; i++)
    {
        sizeofmember[i] = ???????
    }
}

这样我的数组可以填充为

sizeofmember[0] = 26
sizeofmember[1] = 31
sizeofmember[2] = 31
sizeofmember[3] = 11
sizeofmember[4] = 11

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你需要迭代结构或枚举的成员。

这在C / C ++中是不可能的,主要是因为编译了C程序。允许迭代成员的语言通常具有在虚拟机或运行时环境中解释或运行的程序,您可以在其中更轻松地获得有关结构的运行时信息。