【C语言-进阶】自定义类型详解(结构体+枚举+联合)

本文详细讲解了C语言中的自定义类型,包括结构体的声明与定义、自引用、内存对齐、修改默认对齐数、结构体传参以及位段、枚举和联合体的使用。通过实例分析了结构体内存对齐的规则,并探讨了结构体作为函数参数时的影响。此外,还介绍了位段的特性以及联合体如何用于判断机器字节序。
摘要由CSDN通过智能技术生成

结构体的声明与定义

s0,s1,s2都是struct Stu 的别名,即结构体的重命名。(这种情况下就不可以在声明的同时定义变量了)

sp,spp都是sturct Stu类型的

n1为结构体声明的同时定义变量,在下面重新赋值时不能只写n1,还要加上struct Stu。

如果没有对结构体重命名,比如sturct node类型,则在其他作用域中定义变量时,必须加上struct

结构体的自引用

不可以包含struct node n1;只能包含结构体指针。

必须写struct node* 不可写node*

结构体内存对齐

结构体内存对齐是用来计算结构体所占内存的大小的。

首先得掌握结构体的对齐规则:

1. 第一个成员在与结构体变量偏移量为0的地址处。

2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。 对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。 VS中默认的值为8,linux中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值