美文网首页工作
当QHash遇到字节对齐的quint64结构

当QHash遇到字节对齐的quint64结构

作者: dhz120 | 来源:发表于2019-03-07 08:51 被阅读0次

    当QHash遇到字节对齐的quint64结构

    1. 测试代码

    main.cpp

    #include <QCoreApplication>
    #include <QHash>
    #include <QSysInfo>
    #include <QDebug>
    
    
    #pragma pack(push, 1)
    struct Data
    {
        quint64 value;
    };
    #pragma pack(pop)
    
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        Data data;
        data.value = 1;
    
        QHash<int, Data> errorHash;
        errorHash[1] = data;
        qDebug() << QSysInfo::kernelType() << ", data.value" << data.value << "errorHash[1].value" << errorHash[1].value;
    
        return a.exec();
    }
    

    2. 测试结果

    debug_error.png result_right.png

    3. 结论

    • windows下,当结构中包含quint64类型变量时,当过1字节对齐后,作为hash的值时,debug时显示的值不对,但从打印的结果来看没有问题,不知道为啥,可能有坑,需要特别注意

    相关文章

      网友评论

        本文标题:当QHash遇到字节对齐的quint64结构

        本文链接:https://www.haomeiwen.com/subject/mesqpqtx.html