gcc 和 MSFT CL 之间的位域结构大小不同

问题描述 投票:0回答:0

我有以下代码:

#include <cstdint>

#pragma pack(1)
using MyType_t = union {
    uint8_t buffer[16];
    struct {
        uint64_t  a         : 55;   
        uint64_t  b         : 24;   
        uint64_t  c         : 1;    
        uint64_t  d         : 48;   
    }fields;
};
#pragma pack()

int main()
{
    return sizeof(MyType_t);
}

我在 gc 之间得到了不同的结果

c++ c++11 gcc visual-c++ bit-fields
© www.soinside.com 2019 - 2024. All rights reserved.