联合体嵌套结构体 在c语言编码中,因为实现需要,大量使用结构体和共用体,这样有什么弊端吗?
在c语言编码中,因为实现需要,大量使用结构体和共用体,这样有什么弊端吗?
在用C语言设计大量参数和类型时,首先要考虑枚举和结构。Struct使用起来非常方便。我们要注意申请初始化和发布。一般来说,它与C中的基类一起使用,速度很快。
共用体和结构体到底怎么去理解?
程序中定义了通用车身类型UN。它的两个成员I和C占用相同的内存空间。在main()中,变量x由UN定义。X.i表示该区域中的数据按i的类型解释,即int,而X、C[0]或X.C[1]表示该区域中的数据按字符解释。事实上,答案是不确定的,结果是不同的:(1)假设系统的int类型占用2个字节,那么变量x所需的内存是2个字节,变量x分配的内存空间是x.C[0]=10x.C[1],在2000-2001的程序中=1,将此区域的内容修改为:然后输出x.i的值,即以int的方式解释这两个字节中的数据。高字节对应整数的高位,低字节对应低位,然后将这两个字节分别转换为00000001和8位二进制。假设系统的int类型占用4字节,那么变量x所需的内存是4字节。假设变量x分配的内存空间为2000~2003,在程序中x.C[0]=10x.C[1]=1,该区域的内容修改为:sizeof(Union)Data1)为16。默认情况下,Commons的最大基本类型是double,它占用8个字节,因此Commons与8对齐。字符数组C2占用9字节,因此整个公共体应该占用9字节,但根据对齐原则,实际分配给它的内存是16字节。Struct:Struct数据与8字节对齐,long类型的成员1分配8字节。s、 I、C和a最初分别占用4、2、1和10字节。考虑到对齐方式,s分配4个字节,I分配2个字节,C分配2个字节。此时,8个字节刚刚用完。最初分配了10个字节。考虑到对齐,整个结构占用的存储空间是8的倍数,因此分配了16个字节。因此,结构数据占用84216=32字节。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。