我正在尝试使用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(data);
相反,事情将按预期工作.