gpt4 book ai didi

C 位域内存使用

转载 作者:太空狗 更新时间:2023-10-29 15:18:30 25 4
gpt4 key购买 nike

我需要处理如下形式的一些数据:

typedef struct{
unsigned n1 : 12;
unsigned n2 : 12;
unsigned n3 : 12;
unsigned n4 : 1;
unsigned n5 : 35;
} data;

我确保它们总共计数为 9 个字节。
但他们没有.. 将该结构的 9 个字节写入文件并读回它不会恢复所有数据,sizeof(data) 返回 16。
这里有什么问题?

最佳答案

问题是编译器出于效率原因添加了一些填充。

这个行为可以被覆盖。

有关如何使用 gcc 执行此操作,请参阅 forcing alignment in GCC

有关如何使用 Visual C++ 执行此操作,请参阅:forcing alignment in Visual C++

关于C 位域内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com