c - memcpy 的疑问。需要澄清

标签 c memcpy

我有一个 memcpy 函数,它的使用方式看起来很奇怪。我把它粘贴在下面。有人可以帮忙解释一下吗?不知道为什么会出现(void *)。 buffer是struct BLK中的缓冲区。谢谢。

    memcpy(     
                (void *) (BLK->buffer + left),
                (void *) input,
                fill            
          );

最佳答案

假设 inputBLK->buffer 已经是指针类型(它们确实应该是),则无需进行强制转换。

我可以想到他们在那里的两个原因:

  • 作者很偏执。
  • 作者明确表示他/她理解特定的指针类型将进入“通用”函数。

关于c - memcpy 的疑问。需要澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9583434/

相关文章:

c - memcpy 与 C 中的赋值

c++ - 使用 memcpy 将 std::vector 复制到 protobuf 的重复字段

c++ - memcpy 是否取决于源指针和目标指针的类型?

c - 不太确定,memcpy 上有段错误吗?

c - 使用 scanf 函数为变量赋值

c - C 中带有通过 FIFO 管道的指针的结构

c - C 中的哈希表总是产生 Seg 错误

c - 警告 : cast to pointer from integer of different size [-Wint-to-pointer-cast] c programming

Char 数组到 Int 转换

c - linux c 共享内存 :why the order of contents are opposite when write and read