我希望(如果可能)通过单个变量访问数组和结构成员。我得到的最接近的是:
typedef union {
struct {
float x;
float y;
float z;
};
float getItem[3];
} Vector3D;
但是,如果以这种方式完成操作,则每次我想以数组形式访问Vector3D
变量时,都需要这样做:
Vector3D vec;
vec.getItem[0] = 3.5f; //same as vec.x = 3.5f;
vec.getItem[1] = 8.4f; //same as vec.y = 8.4f;
vec.getItem[2] = vec.getItem[0] + vec.getItem[1]; //same as vec.z = vec.x + vec.y
我想知道是否可以使用typedef,结构,联合和指针的任何组合(或与C提供的任何其他工具)将变量用作结构和指向该结构的指针,可以直接作为数组访问,例如:
Vector3D vec;
vec[0] = 3.5f;
vec.y = 8.4f;
vec[2] = vec.x + vec[1];
我遇到了一些类似问题的解决方案,例如this one,但是在这个问题上,他建议创建另一个变量,该变量是指向数组的指针,而我想访问两个数组和具有相同变量的结构,只有一个声明(如我的示例)。有什么办法吗?