记忆疑虑。需要澄清

时间:2012-03-06 12:09:07

标签: c memcpy

我有一个memcpy函数,看起来很奇怪它是如何使用的。我把它贴在下面。请有人帮忙解释一下。我不知道为什么(void *)。缓冲区是struct BLK中的缓冲区。感谢。

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

2 个答案:

答案 0 :(得分:1)

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

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

  • 作者是偏执狂。
  • 作者明确表示他/她理解特定指针类型将进入“通用”功能。

答案 1 :(得分:0)

void *memcpy(void *dest, const void *src, size_t n);

可能是作者想要非常肯定编译器不会在执行其工作时出错: - )

在C中,不需要从void *转换对象指针。 指向函数的指针是另一回事。