结构体的声明、自引用、定义和初始化、内存对齐、传参

1.声明

eg:

一定情况下,标签名也可以省略

2.自引用

正确的使用方法

通过解引用符号来正确使用,错误的方法常常漏掉解引用符号

3.定义和初始化

4.内存对齐

下面我们先看个例子

那它为什么是12呢?别急,咱们一步步看下去

首先,咱们要熟悉熟悉结构体的对齐规则

第一点,这里int是四个字节,所以从0开始,一直到3,这是a所占的,b c一样

第二点,int a 4 8 4 char b 1 8 1 int c 4 8 4 比较,取较小值

第三点,然后要从整数倍开始,4是1的倍数,所以b就从这里

然后 8是4的倍数 c就从这里往下数四个然后

12为最大对齐数的整数倍,所以符合(最大对齐数为4)

所以,答案就为12

特别说明嵌套的话就看最大对齐数,然后依次往下数,就比如我上面举例的这个从4的整数倍往下数12个

5.传参

print1与print2相比,首选print2。

因为函数传参是需要参数压栈会有时间和空间上的系统开销

如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,会导致性能下降

所以,结构体传参时要传结构体地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值