数据类型之结构体
作者:u011011827的博客 发布时间:[ 2016/10/24 10:05:01 ] 推荐标签:数据类型 .NET
结构体是构造数据类型的一种 结构体的实质 结构体是大体上连续的地址上的元素集合 结构体中的元素的存储要考虑对齐 结构体的作用 在c语言中,结构体是一种非常重要的数据类型。 封装多个不同类型的元素,作为交互的一个接口 交互这块,结构体变量可以作为数据结构中的一个节点,可以作为网络通信中发送的消息的封装,可以作为内核中文件属性的封装,可以作为驱动中对设备文件操作的封装. 也是说,驱动,内核,应用方面都应用到了结构体,频率远远高于数组和共用体,与指针相辅相成,应用极其广泛 结构体的组成 结构体是依靠不同的数据类型的组合创建起来的,数组的元素可以是之下的任何几种的组合 整型 浮点型 字符型 指针型 枚举型 数组 结构体 共用体 结构体的声明
/*结构体的声明不分配内存空间*/
struct hello{//结构体类型名为 struct hello
int hello;//结构体成员名可以与结构体类型名中的第二个标识符相同
char c[100];
struct hello * p;//结构体可以包含该结构体指针,但是不可以包含该结构体
};
结构体变量的定义
/*结构体的定义分配内存空间*/
struct hello hello;//我是说这样可以定义,我只是演示而已,千万不要像我这样定义,确保别人看你的标识符知道你写的是什么东西
结构体的对齐 #### 结构体变量和常量的存储并不是像数组那样连续存储的,而是大体上连续,这里涉及到一个对齐的概念 按照以下规则对齐 1.各元素中的大存储字节数大于4按照4 对齐 2.各元素中的大存储字节数大于4按照4 对齐 注意:对齐中不要忘了补齐
对齐的概念为
结构体成员存储不能跨"对齐字节线"//我自己想的一个概念
对齐字节线:假设按照6对齐(实际上不存在按照6对齐)
abcdef|ghijkl|mnopqr|st
如上一行:"|"为对齐字节线。一个结构体成员类型不能跨字节线存储
如上面结构体的存储,为20字节.
对齐之后还要补齐为小的大于20的6的整数倍,即补齐为24字节.
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11