我正在尝试使用qFromBigEndian从通过udp套接字接收的字节流中读取32位int。
void processData(uchar *data)
{
qint32 addr;
addr = qFromBigEndian(data);
}
进行编译会产生以下错误:
错误:从'uchar *'到'qint32'的无效转换
Qt文档说:
T qFromBigEndian(const uchar * src)
Reads a big-endian number from memory location src and returns the number in the host byte order representation. Note: Template type T can either be a qint16, qint32 or qint64.
显然我在做些愚蠢的事,我已经垂头丧气了。有人可以解释我明显的错误吗?
最佳答案
请注意,qFromBigEndian(const uchar *src)
是功能模板。
您缺少模板参数,请使用
addr = qFromBigEndian<qint32>(data);
相反,一切都会按预期进行。
关于c++ - 使用qFromBigEndian编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3317543/