[英]Most efficient way of accessing coordinates
給出以下定義
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 ...
(成對,每行)生成相同的(匯編)代碼? 訪問坐標的兩種方式之間的效率是否存在差異?
px,...
可能會更快,但是人們會注意到的差別不大。 當你使用數組時,在給定索引中每個double的大小乘以一段時間來獲得所需的內存地址; 但在另一種方法( px,...
)中,編譯器知道我們正在訪問的地址,因此不需要進行計算。 但是,如果編譯器足夠智能以找出常數,那么就沒有區別了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.