gpt4 book ai didi

c - 更多级别的间接对 C 中的性能有影响吗

转载 作者:行者123 更新时间:2023-11-30 17:29:56 26 4
gpt4 key购买 nike

如果我有一个包含结构数组的结构......等等

config.data.item[3].userFunction();

使用

访问是否更好
itemType * item = &config.data.item;

item[3].userFunction();
item[4].userFunction();

或者这与

相同
config.data.item[3].userFunction();
config.data.item[4].userFunction();

或者效率损失的级别数量是否有限制,编译器优化有什么影响吗?

提前非常感谢您提供的任何见解。

最佳答案

间接级别确实会影响 CPU 周期和可读性。但是,在您的情况下,只有一层间接(函数指针)。点运算符在编译时生成 config 位置的偏移量。

不管怎样,创建一个变量来保存公共(public)子表达式的结果是一个好主意,特别是当您为该变量指定一个有意义的名称时。然而,就 CPU 而言,您应该不会看到任何影响:优化编译器现在非常擅长检测和优化常见子表达式,因此无论采用哪种方式编写此特定代码片段,您都应该看到相同的性能。

关于c - 更多级别的间接对 C 中的性能有影响吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25453448/

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