gpt4 book ai didi

c - 我们什么时候需要 C 中的缓冲区?

转载 作者:行者123 更新时间:2023-12-05 01:32:14 27 4
gpt4 key购买 nike

我在阅读其他人的代码时看到很多人使用 BUFFER_SIZE 之类的东西作为宏。问题是,许多程序可以在没有这个缓冲区的情况下编写。那么我们什么时候需要缓冲,什么时候不需要呢?我的意思是,为什么我们需要缓冲区?以及如何正确使用它?

最佳答案

来自维基百科:

a buffer is a region of a physical memory storage used to temporarily hold data while it is being moved from one place to another.

话虽如此,我觉得缓冲区有一些具体用途:

  • 将异步数据源转换为同步数据源:这是一个很大的问题,很多 API 都是用这种思维方式构建的。例如,假设您正在读取一个本质上容易出错的数据源。异步地,您有一个流在某些时候可能会失败,但您可以请求再次读取数据。这种数据处理是非常低级的细节,您不希望高级程序员不得不担心它。解决方案是编写一个管理流的低级处理程序,并在数据被安全读入后将数据放入缓冲区。例如,您会在文件系统、网络协议(protocol)等中看到缓冲区的使用...

  • 传递大量数据:如果您想在多人之间共享数据,您需要一个临时位置来存储数据以便在人与人之间进行调解。

  • 复制内容/进行破坏性操作:如果您遇到需要释放一个指针并在内存中移动某些内容(无论出于何种原因)的情况,您可以将数据放在临时存放位置。一个常见的情况是我正在做一些破坏性操作字符串的事情:我无法操作原始字符串,我需要复制它,所以如果其他人持有它我不会破坏指针.

关于c - 我们什么时候需要 C 中的缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10826869/

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