[英]Converting a float* or other pointer to unsigned char*
我有以下函数,该函数将字节数组作为浮点数据的unsigned char*
。
void expectsFloatData(unsigned char* floatData, int floatCount)
{
//Does something
memset(floatData, 0, floatCount * sizeof(float));
}
float data[4];
expectsFloatData(???, 4);
这是否证明使用reinterpret_cast<unsigned char*>(data);
?
由于我只是更改了编译器所见的变量类型,因此无需担心它将如何在实际字符(小尾数与大尾数以及其他平台特定的东西)的上下文中解释数据。浮点数的字节仍然存在,对吗?
是的, reinterpret_cast
是此处的适当工具。 如果功能参数是float*
或void*
(例如, memset
使用void*
,以便能够接受和覆盖任何类型的缓冲区),那就更好了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.