c++ - void* 或 char* 用于通用缓冲区表示?

标签 c++ arrays buffer

我正在设计一个 Buffer 类,其目的是表示一 block 内存。

我的底层缓冲区是 char* (嗯,实际上是 boost::shared_array<char>,但这并不重要)。

我一直在决定为我的构造函数选择什么原型(prototype):

我应该去:

Buffer(const void* buf, size_t buflen);

或与:

Buffer(const char* buf, size_t buflen);

还是别的什么?

通常会做什么,为什么?

最佳答案

API 接口(interface)对用户来说更加清晰,如果 buffer 是 void* 类型,而 string 是 char* 类型。比较 memcpy 和 strcpy 函数定义。

关于c++ - void* 或 char* 用于通用缓冲区表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3813138/

相关文章:

c# - 简单的 LinQ 问题 : convert [][] to []

c++ - 将缓冲区转换为字符串 C++ boost

c++ - 为什么我的值没有被我的初始化(参数化)构造函数初始化?

c++ - 关于c++类中typedef函数的疑问

javascript - 为什么[i]的值使用for循环立即跳转到数组的末尾?

PHP array_merge() 仅优先使用第一个数组和唯一值?

file - ido flex 匹配如何工作?

javascript - 将 Node.js 缓冲区转换为字符串,然后转换为 JSON

c++ - C/C++ 应用程序的新手设计注意事项

c++ - 如何选择一个总和为目标数字的数字序列(从固定列表中)?