从C语言基础到高级C语言 (结构体和位域)

本文详细探讨了C语言中的结构体和位域。结构体包括概念、定义、赋值、初始化、取别名及计算字节数等方面,讲解了结构体的对其规则。位域部分介绍了位域的概念、类型、宽度、对齐方式,以及在不同编译器下的存储规则,并给出了实际应用示例。
摘要由CSDN通过智能技术生成

结构体

1、概念

自己定义的类型

2、姿势

1、struct{结构成员;结构成员;};

例如:

struct{
int len;
int h;
int w;
};

struct{
int len;
int h;
int w;
} xx;

xx.len = 20;
xx.h = 160;
xx.w = 160;

2、truct 结构标记{结构成员;结构成员;};

*结构标记 结构成员 及变量名字可以相同

例如

struct x{int x;}; struct x x; ---> 没有问题

struct x{int x;} xx;

struct x xx; //等同于上面

3、定义

1、struct{成员;成员;} x,y,z;

2、struct 结构标记{结构成员;结构成员;}x,y,z;

4、赋值

例如:

struct point{
int x;
int y;
};
struct point sp;
sp.x = 10; //结构体变量,用点(.)去获取成员
sp.y = 20;
struct point *psp = (struct point *)malloc(sizeof(struct point));
psp->x = 10; //结构体指针变量,用->去获取成员
psp->y = 20;

看例子

#include <stdio.h>
#include <string.h>

int main(v
C语言的共用体(Union)和位域(Bit-Field)是用来优化内存使用和灵活操作数据的工具。 共用体是一种特殊的数据类型,它允许不同的变量共享同一块内存空间。共用体的成员变量共享同一内存,占用内存大小等于最大成员的大小。通过修改共用体的一个成员变量的值,可以影响到其他成员变量的值。共用体适用于在不同的数据类型之间进行转换或者存储占用内存大小不定的数据。 位域是一种特殊的结构体成员变量,可以指定成员变量占用的位数,从而实现对内存空间的灵活利用。位域的成员变量必须是整型数据类型,并且位域的大小不能超过该整型类型的大小。位域可以用于减小数据结构占用的内存大小,以及进行数据的位操作。 共用体和位域结构体可以一起使用。通过在位域结构体定义共用体成员变量,可以实现对内存的灵活使用和数据的高效操作。共用体可以用于存储不同类型的数据,而位域可以用于压缩数据的存储空间。这种结合使用的方式可以为我们的程序带来更加高效和节省内存的特点。 总结起来,C语言的共用体和位域结构体提供了一种优化内存使用和操作数据的方式。它们可以灵活地对内存空间进行利用,并且能够高效地操作数据。通过合理的使用共用体和位域结构体,我们可以达到节省内存和提高程序执行效率的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值