结构成员访问的性能

lus*_*shr -1 c optimization performance struct

我有一个高性能的关键代码部分,需要访问结构的多个字段。将结构本身分配给变量,或使用指针获取结构的成员是否更快,例如

struct A* = A_arr + n;
int a = A->t - A->s;
Run Code Online (Sandbox Code Playgroud)

对比

struct A = A_arr[n];
int a = A.t - A.s;
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

dma*_*dma 5

理想情况下,您可以自己测量以找出答案。理论上,一个好的编译器将为两者创建相同的程序集。

第二个版本更自然,因此更具可读性,所以我更喜欢它,直到它被测量并发现它不太理想。