将 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
。
在 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
。