我有一个类似的代码
while (n--)
{
*((char*)dest++) = *((char*)src++);
}
其中dest
和src
是空指针和n
大小。目标是重新实现一个 memcpy 函数。使用 gcc 编译此代码时,一切正常,但是当我添加-Wpedantic
标志时,我有四个警告“错误的类型参数要递增”。
Google 告诉我,在尝试对 void 指针使用算术时会发生这种情况,因为在这种情况下 gcc 将 void 类型视为 1 字节类型,但旧版编译器不应该这样做。然后我必须将指针转换为 char 指针,但如您所见,我已经做到了!
任何想法?