通过公共成员访问成员数组 [英] access to member array via public members
本文介绍了通过公共成员访问成员数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用memcpy
来初始化3个浮点数的成员数组(出于效率原因)。后来我想通过公共成员访问花车
(例如foo.x,foo.y,foo.z)。
这可能吗? (将在一秒钟后发布想法)
-Jimmy
解决方案
public:
//添加一些编译器指令紧紧包装
浮动x;
浮动y;
浮动z; <后来使用memcpy(& foo.x,p_float_data,3 * sizeof(float))
如何告诉编译器紧紧包装?
memcpy会导致运行时错误吗?
-jimmy
jimmy写道:我想用memcpy初始化一个3个花车的成员数组
(出于效率的原因)。
无论你的原因是什么,它们对你来说都很重要。
后来我想通过公共成员访问花车
(例如foo。 x,foo.y,foo.z)。
这可能吗? (将在一秒钟内发布想法)
是的,这是可能的。
V
jimmy写道:public:
//添加一些编译器指令紧紧包装
浮动x;
浮动y;
浮动z;
//稍后使用memcpy(& foo.x,p_float_data,3 * sizeof(float))
这会有用吗?如何告诉编译器紧紧包装?
memcpy会导致运行时错误吗?
您可以简单地声明一个真实数组,然后生成x,y和z
引用数组元素。
V
Hi,
I would like to initialize a member array of 3 floats with a memcpy
(for reasons of efficiency). Later I would like to access the floats
via public members (e.g. foo.x, foo.y, foo.z).
Is this possible? (will post ideas in a second)
-Jimmy
解决方案
public:
// add some compiler directive to tightly pack
float x;
float y;
float z;
// later on use memcpy(&foo.x, p_float_data, 3*sizeof(float))
Would this work? How do I tell the compiler to tightly pack? would the
memcpy cause a runtime error?
-jimmy
jimmy wrote:I would like to initialize a member array of 3 floats with a memcpy
(for reasons of efficiency).
Whatever your reasons, they are probably important to you.
Later I would like to access the floats
via public members (e.g. foo.x, foo.y, foo.z).
Is this possible? (will post ideas in a second)
Yes, it is possible.
V
jimmy wrote:public:
// add some compiler directive to tightly pack
float x;
float y;
float z;
// later on use memcpy(&foo.x, p_float_data, 3*sizeof(float))
Would this work? How do I tell the compiler to tightly pack? would the
memcpy cause a runtime error?
You could simply declare a real array, and then make x, y, and z the
references to the array elements.
V
这篇关于通过公共成员访问成员数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文