c - 有什么简单的方法可以在for循环中找到结构成员的大小

标签 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

最佳答案

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

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

关于c - 有什么简单的方法可以在for循环中找到结构成员的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447249/

相关文章:

c - 仅 memcpy 不同的数据

c++ - 如何使 Win32 API 窗口看起来更现代?

iphone - 如何获得塞尔达文字效果?

C scanf后没有printf到第二行

c - 为什么不同指针的大小不同

c++ - alignof(T*) 对于所有可能的类型都相同吗? sizeof(T*) 呢?

c - 在 C 中将 Int32 类型转换为 sCplx16 IQ 样本

c++ - 如何将证书字符串转换成X509结构。?

c - 箭头运算符与点运算符

c - 相同的指针在不同的编译器中显示不同的大小