我有一个memcpy函数,看起来很奇怪它是如何使用的。我把它贴在下面。请有人帮忙解释一下。我不知道为什么(void *)。缓冲区是struct BLK中的缓冲区。感谢。
memcpy(
(void *) (BLK->buffer + left),
(void *) input,
fill
);
答案 0 :(得分:1)
不需要强制转换,假设input
和BLK->buffer
已经是指针类型(它们确实应该是)。
我可以想到他们在那里的两个原因:
答案 1 :(得分:0)
void *memcpy(void *dest, const void *src, size_t n);
可能是作者想要非常肯定编译器不会在执行其工作时出错: - )
在C中,不需要从void *转换对象指针。 指向函数的指针是另一回事。