关于结构体

1.结构体–(‘:’)后面是需要的比特位的数量
结构体的存储要考虑内存对齐问题–会浪费内存–用空间换取时间
设计的时候,让占用空间小的成员尽量集中在一起,可以节省一点空间

默认对齐数是可以修改的

2.函数传值时可以传值,也可以传地址,
传值时,形参只是实参的一份临时拷贝,修改形参不会影响实参。若想修改实参,就要传地址(&),传地址时】函数要用指针接收(*)
并且传地址节省空间,因为地址只有4/8个字节,传值的话会另外开辟空间;到那时传地址比较危险(可以改变实参),要想节省空间又想安全的话就用const修饰实参。
3.位段
节省空间(每次开辟1/4个字节,8/32个比特位,也会有一定的内存浪费)
位段里面全是char型–一次开辟一个字节空间
或全是int型–一次开辟4个字节空间
初始化时不能超过8/32,否则会报错

跟结构体相比,位段可以达到同样的效果,且可以很好的节省空间,但是具有不能跨平台(编译器)问题的存在。
位段应用:数据包–用来节省空间提升性能—网上传输时,数据从哪里来,要发送到那里去,以及数据本身都需要存储

4.枚举–enum
枚举的大括号中存放的是枚举常量,即枚举的可能取值,打印的话,默认从0开始,也可以自己赋值
***面试重点—枚举的优点

5.联合体 也叫共用体 union关键字
联合体的成员公用一块内存空间,一个联合变量的大小至少是最大成员的大小
联合体的多个成员不能同时使用,因为所处内存空间相同,同时使用会发生冲突。
当最大成员大小不是最大对齐数的整数倍时,就要对齐到最大对齐数的整数倍。
结构体和联合体存在对齐存储,位段和枚举不存在对齐存储
***百度面试题–判断大小端字节序存储模式

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值