问题描述
在C ++中,我可以创建如下结构:
union Vector4
{
struct { float x,y,z,w; };
float data[4];
};
因此我可以轻松地以字段或连续数组的形式访问数据。另外,我可以只创建一个指向第一个字段x
的指针,并从该指针作为连续数组读取。
我知道有枚举,但是我无法支付额外的开销。我也知道我可以在Rust中创建并集,但是它们要求我在访问它们的任何地方用unsafe
填充我的代码。我认为我不必这样做,因为代码并非不安全,因为基础数据始终表示为浮点数(并且我需要C布局#[repr(C)]
,以便编译器不会抛出字段顺序)。
我将如何在Rust中实现此功能,以便我可以按名称访问字段,还可以轻松安全地访问整个结构的连续内存?如果这不可能,是否有办法让我可以安全地获取结构的一部分?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)