我正在用C创建一个几何库,需要以下不可变类型:Vector2f
(2float
s-8字节)Vector2d
(2double
s-16字节)Vector3f
(3float
s-12字节)Vector3d
(3double
s-24字节)Vector4f
(4float
s-16字节)Vector4d
(4double
s-32字节)
我正试图确定是让它们成为结构还是类。MSDN建议仅在大小不大于16字节时使用结构。这似乎是2005年的事。16字节仍然是建议的最大大小吗?
我确信对float
向量使用struct比使用类更有效,但是对于double
向量我该怎么办?我应该使它们的结构也保持一致,还是应该使它们成为类?
更新时间:
看起来每个人都同意他们应该是structs。谢谢你的回答。
最佳答案
微软的xna框架对其Vector2/3/4数据类型使用结构。它们包含float
类型的字段。我认为这样做没有什么错;使用double
类型的字段不应该有太大的区别。