我有来自 libpurple 的以下 C 宏:
#define yahoo_get16(buf) ((((*(buf))<<8)&0xff00) + ((*((buf)+1)) & 0xff))
Run Code Online (Sandbox Code Playgroud)
我如何将其编写为一个函数,该函数将获取 QByteArray 作为参数并使用上面 c 宏中的算法重新运行 quint16 值?
我已经问过一个类似的问题,它将从 quint16 转换为 QByteArray ,所以基本上我现在想做的是该函数的相反操作。
谢谢。
您还可以使用qFromBigEndian
QByteArray bytes;
...
quint16 result = qFromBigEndian<quint16>((uchar*)bytes.data());
Run Code Online (Sandbox Code Playgroud)