将 void* 转换为 char*

Casting void* to char*

在 C++ 中将 void* 转换为 char* 的 best/safest 方法是什么?

static_cast 或 reinterpret_cast?

void I2C::Read(void* buffer, DWORD address, UINT size) 
{
    if (_isDeviceAvailable)
    {
        _iicInstance.seekg(address, std::ios_base::beg);
        _iicInstance.read(reinterpret_cast<char *>(buffer), size);
        Gpio::SVSet();
    }

}

static_cast 将是这里的选择。使用 static_cast 往返于 void* 保留地址,请参阅类似的问题 here

accepted answer 也解释了为什么在类似情况下不使用 reinterpret_cast