gpt4 book ai didi

C 指针与结构的直接成员访问

转载 作者:太空狗 更新时间:2023-10-29 16:45:37 28 4
gpt4 key购买 nike

假设我有一个像下面这样的结构......

typedef struct {
int WheelCount;
double MaxSpeed;
} Vehicle;

...我有一个这种类型的全局变量(我很清楚全局变量的陷阱,这是针对嵌入式系统的,我没有设计它,但不幸的是必要的邪恶。)直接访问结构的成员还是通过指针访问结构的成员更快?即

double LocalSpeed = MyGlobal.MaxSpeed;

double LocalSpeed = pMyGlobal->MaxSpeed;

我的任务之一是简化和修复最近继承的嵌入式系统。

最佳答案

一般来说,我会选择第一个选项:

double LocalSpeed = MyGlobal.MaxSpeed;

这减少了一次取消引用(您没有找到指针,然后取消引用它以到达它的位置)。它也更简单、更易于阅读和维护,因为除了结构之外,您不需要创建指针变量。

话虽这么说,但我认为您看到的任何性能差异都不会引人注意,即使在嵌入式系统上也是如此。两者都将是非常非常快的访问时间。

关于C 指针与结构的直接成员访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1329096/

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