gpt4 book ai didi

c++ - C++ 中的指针 : How large should an object be to need use of a pointer?

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:20 24 4
gpt4 key购买 nike

我经常在文献中读到解释 C++ 指针的一个用例是当一个人有大对象要处理时,但是一个对象应该有多大才能在被操作时需要一个指针?有没有这方面的指导原则?

最佳答案

我认为大小不是要考虑的主要因素。

指针(或引用)是一种从不同位置指定一组数据(无论是对象、函数还是未类型化字节的集合)的方法。

如果您使用拷贝而不是使用指针,您将面临相同数据的两个不同版本变得彼此不一致的风险。如果两个拷贝代表一条信息,那么您将不得不做两倍的工作以确保它们保持一致。

因此在某些情况下,使用指针来引用甚至单个字节可能是正确的做法,即使存储所述字节的拷贝在内存使用方面会更有效。

编辑:回答 jogojapan 的评论,这是我对内存效率的看法

我经常通过分析器运行程序,发现惊人比例的 CPU 能力用于各种形式的内存到内存拷贝。我还注意到,优化内存效率的成本通常被代码复杂性所抵消,但 yield 却微乎其微。

另一方面,我花了很多时间将错误追踪到数据不一致,其中一些需要进行大量代码重构才能消除。

在我看来,在项目接近尾声时,内存效率应该成为更多关注的问题,此时分析会揭示 CPU/内存消耗真正发生的位置,而代码稳健性(尤其是数据流和数据一致性)应该是主要问题在概念和编码的早期阶段要考虑的因素。

如果希望应用程序处理大量数据,则应在开始时仅对最庞大的数据类型进行维度标注。在现代 PC 中,我们谈论的是数百兆字节,而大多数应用程序永远都不需要。

当我在 10 或 20 年前设计嵌入式软件时,内存使用一直是一个问题。但是在像台式机这样的环境中,与可用 RAM 的数量相比,内存需求在大多数情况下可以忽略不计,对我来说,专注于可靠的设计似乎更重要。

关于c++ - C++ 中的指针 : How large should an object be to need use of a pointer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866338/

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