深入理解结构体中占位符的用法

 更新时间:2013年05月28日 12:15:00   作者:  
本篇文章是对结构体中占位符的用法进行了详细的分析介绍,需要的朋友参考下
复制代码 代码如下:

typedef union
{
    struct x{
    char a1 : 2;
    char b1 : 3;
    char c1 : 3;
    }x1;
    char c;
}my_un;
int main()
{
    my_un a;
    a.c = 100;
    printf("%d/n",a.x1.c1);
    printf("%d/n",sizeof(my_un));

    return 0;
}

输出结果:
3
1
即第一个是3, 而联合体的大小为 1  
分析:
sizeof为1表示1个字节,结构体中占位符冒号表示占的位数,实际上还是3+3+2=8位就是1个字节

100--->01100100
共用体中结构体的数据也为100.
a1占低2位(00);
b1占低3到5位(001);
c1占高3位(011);
因此a.x1.c1打印值为3.
sizeof(my_un);
共用体所占的字节大小取决于最大成员.它们都为1(结构体所占比特位为2+3+3=8位,char型为1字节).
所以为1.

相关文章

  • C++菱形继承及解决方法详解

    C++菱形继承及解决方法详解

    这篇文章主要介绍了C++菱形继承及解决方法详解,在多继承结构中,存在着很多问题,比如从不同基类中继承了同名成员,派生类中也定义了同名成员,这种二义性问题很好解决,加上要访问的基类的类名限制就可以了,需要的朋友可以参考下
    2023-08-08
  • C++实现线程池的简单方法示例

    C++实现线程池的简单方法示例

    这篇文章主要给大家介绍了关于C++实现线程池的简单方法,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • C++解析特殊符号tab、换行符号实例代码

    C++解析特殊符号tab、换行符号实例代码

    这篇文章主要给大家介绍了关于C++解析特殊符号tab、换行符号的相关资料,这个功能在我们日常开发中经常会遇到,需要的朋友可以参考下
    2021-05-05
  • C语言 格式化读写文件详解

    C语言 格式化读写文件详解

    本文主要介绍C语言 格式化读写文件,这里提供了关于格式化读写文件的基本资料及实现示例代码,有兴趣的小伙伴可以参考下,以便理解学习
    2016-08-08
  • C/C++并查集的查询与合并实现原理

    C/C++并查集的查询与合并实现原理

    这篇文章主要介绍了C/C++并查集的查询与合并,并查集是一种用来管理元素分组情况的数据结构。并查集可以高效地进行如下操作
    2023-02-02
  • C语言学习之链表的实现详解

    C语言学习之链表的实现详解

    链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。这篇文章主要介绍了C语言中链表的实现,需要的可以参考一下
    2022-11-11
  • 用c语言实现和平精英的完整代码

    用c语言实现和平精英的完整代码

    这篇文章主要介绍了用c语言实现和平精英的完整代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • C++中简单读写文本文件的实现方法

    C++中简单读写文本文件的实现方法

    本篇文章是对C++中简单读写文本文件的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C 语言基础之C 语言三大语句注意事项

    C 语言基础之C 语言三大语句注意事项

    今天讲解的内容,则是自己对于这三种语句一些细节的简单介绍,分支语句:if,switch、循环语句:while,for,do while、goto语句,感兴趣的小伙伴可以参考下面具体的文章内容
    2021-09-09
  • C语言图文并茂讲解分支语句用法

    C语言图文并茂讲解分支语句用法

    分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句
    2022-04-04

最新评论