相关疑难解决方法(0)

位字段结构分配意外行为

我不知道为什么,但位字段分配没有按预期工作.可能只是一个愚蠢的事情,但我无法找到问题所在.

任何帮助都非常受欢迎.

typedef struct  a {
    unsigned char a1 :1;
    unsigned char a2 :3;
    unsigned char a3 :2;
    unsigned char a4 :2;
} __attribute__((packed)) mystruct;

int main() {
    mystruct d;
    d.a1 = 0;
    d.a2 = 2;
    d.a3 = 1;
    d.a4 = 2;

    unsigned char *val = (unsigned char*) &d;

    printf("%02X \n", *val);
    printf("%02X \n", sizeof(hola));

    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

返回输出:

94
01
Run Code Online (Sandbox Code Playgroud)

预期产量:

26
01
Run Code Online (Sandbox Code Playgroud)

c c++

2
推荐指数
2
解决办法
1403
查看次数

标签 统计

c ×1

c++ ×1