簡體   English   中英

最有效的訪問坐標的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM