c语言中怎样通过索引获取结构体成员的值

2025-05-14 00:31:46
推荐回答(3个)
回答1:

也许你可以定义一个数组,数组的值是结构体各个成员在结构体中的偏移位置,如
const int offset[] = {0, sizeof(char), sizeof(char)+sizeof(int)};
struct Test a;
那么访问第一个数据可以
char num1 = *(char*)((char*)&a + offset[0]);
int num2 = *(int*)((char*)&a + offset[1]);
int num3 = *(int*)((char*)&a + offset[2]);

回答2:

你可以通过switch实现,每个case时注意成员类型。

回答3:

不可能!