将float *或其他指针转换为unsigned char *

时间:2014-08-20 22:41:05

标签: c++

我有以下函数,它将一个字节数组作为浮点数据的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);的使用是正确的?由于我只是改变了编译器看到的变量类型,我不应该担心它会如何解释实际字符(小端与大端和其他平台特定事物)的上下文中的数据,因为浮点数的字节仍在那里,对吗?

1 个答案:

答案 0 :(得分:3)

是的,reinterpret_cast是适当的工具。如果函数参数为float*void*(例如,void*memset使用的,则能够接受和覆盖任何类型的缓冲区会更好)。