【问题标题】:c structures bit fieldsc 结构位域
【发布时间】:2015-08-16 12:36:52
【问题描述】:

一段代码sn-p如下:

struct wer
{
unsigned int a:5;
unsigned int:0;
unsigned int b:3;
unsigned int c:2;
unsigned int:0;
}v;

我知道所有这些都是打包的位字段,但是如何找到 v 所需的存储空间。

【问题讨论】:

    标签: c struct


    【解决方案1】:

    您可以使用sizeof(v) 获取v 所需的存储空间。

    【讨论】:

    • 是的,但是如果我们想手动计算如何去做
    • @soul:您必须阅读编译器手册才能了解它是如何完成这项工作的。它是所有实现定义的(或主要是实现定义的)。我可以看到占用 8 个字节;我可以看到它需要 2 个字节。我相信该标准将允许任何一个,可能还有其他一些值。我认为第二个零长度字段不会改变答案。 (在 Mac 上,GCC 5.1.0 的大小为 8。)
    • @Jonathan Leffler 好的,我明白了
    • 如果字长为 16 位,并且位从右到左排列,那么 v 所需的存储空间是多少
    猜你喜欢
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多