gpt4 book ai didi

c++ - 访问坐标的最有效方法

转载 作者:行者123 更新时间:2023-11-28 03:19:41 26 4
gpt4 key购买 nike

给定以下定义

union {
double coords[3];
struct {
double x,y,z;
};
} p;

可以通过索引和名称访问 3D 点的坐标(两种方式各有优势)。但它们是等价的吗?更准确地说:将以下表达式

... p.coords[0] ... p.x ...
... p.coords[1] ... p.y ...
... p.coords[2] ... p.z ...

(成对,对每一行)生成相同的(汇编)代码?两种访问坐标的方式在效率上有区别吗?

最佳答案

p.x,... 可能会更快,但是人们会注意到并没有太大区别。当您使用数组时,需要花费时间乘以给定索引中每个 double 的大小以获得所需的内存地址;但在另一种方法 (p.x,...) 中,编译器知道我们正在访问的地址,因此不需要计算。但是,如果编译器足够聪明,可以计算出常量,那就没有区别了。

关于c++ - 访问坐标的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15829592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com