c - 是否可以在 C 中直接访问结构成员作为数组?
问题描述
我希望能够(如果可能)通过单个变量访问数组和结构成员。我得到的最接近的是以下内容:
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,但在那个问题中,他建议创建另一个变量,它是指向数组的指针,而我想使用相同的变量,只有一个声明(如我的示例中)。有什么办法吗?
解决方案
推荐阅读
- python - 图像未在 python OpenCV 中打开
- regex - 正则表达式匹配多组括号之间的所有内容
- ldap - 如何配置 hashcorp v1.2.3 以根据 LDAP 组中的成员身份限制登录?
- c++ - 如果调用 RtlSetProcessIsCritical,将命令行与使用 lstrcmpW 的值进行比较将使程序崩溃
- database - 如何验证任何联系方式字段
- c# - HtmlAgilityPack - 正确获取同名的第二个类
- python - 如何在 Python 中清理数据框行
- json - 使用 JavaScriptSerializer 从 JSON 填充文本框
- android - 如何从数组中生成变量
- ruby-on-rails - 使用 Rails 数据创建大型 ZIP 文件并将其发送到 Amazon S3 存储的最佳方法是什么?