繁体   English   中英

如何使用位字段struct和union制作4个字节?

[英]How to make 4 bytes using bit field struct and union?

这是代码。

struct test {
    struct abc {
        int a : 24;
        union b {
            int b1 : 10;
            int b2 : 14;
        };
    };
    int c : 8;
};

我想使结构abc为3字节大小,再加上一个额外的1字节大小变量以使4字节结构。 但是,由于内部结构实际上显示为4个字节,结构测试的总大小为5个字节。

我正在使用Visual Studio 2017版本。 (而且我也已经使用打包选项)

如何将结构调整为4个字节? 这是已在使用中的代码中发现的错误,因此依赖项太大,以至于我无法更改变量的顺序或在其中创建新的结构。

#pragma pack(1)
struct test {
    struct abc {
        short a;
        union b {
            byte b1;
            byte b2;
        }_b;
    }_abc;
    byte c;
};

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM