c语言进阶-结构体进阶

结构体进阶篇

结构体声明

结构体是不同类型变量的集合,数组是相同类型变量的集合。

 

特殊的结构体声明(匿名结构体类型)

 匿名结构体只能在结构体声明尾处一次性创建结构体变量。后面再用相同的结构体声明再创建,编译器依然会把他们当成不一样的类型。

 上述创建的x变量和p结构体指针   p = &x的操作会报警告,因为编译器会把他们当成不一样的类型。

结构体的自引用

 

 

结构体内存对齐

用来节省时间,增加性能。

结构体的内存对齐规则

 

GCC编译器上无默认对齐数,只有VS才有默认对齐数8。 

offsetof()返回值是结构体变量当中的某个结构体成员的偏移量

头文件#include <stddef.h>

  

修改默认对齐数的方法

#pragma()

实例

 修改默认对齐数可以更好的节省创建结构体变量所占内存。

结构体传参

 

位段

用来节省内存

位段是通过结构体来实现的

 位段的成员必须是整型家族(char   short int long longlong)

位段的内存分配

实例:位段的书写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值