c语言之结构体 (简述下)

本文介绍了C语言中的位域概念,包括结构体作为函数参数、位域的定义和使用,以及如何通过位域进行内存优化。位域允许在存储时按需占用二进制位,从而节省空间。文章探讨了位域的定义、位域变量说明,并提供了实例展示位域如何在内存中布局,以及如何避免浪费内存。最后,讨论了在实际编程中如何利用位域优化内存。
摘要由CSDN通过智能技术生成

结构体简述

结构体作为函数的参数

可以把结构体作为函数参数,传参方式与其他类型的变量或指针类似。

位域

有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有 0 和 1 两种状态,用 1 位二进位即可。为了节省存储空间,并使处理简便,C 语言又提供了一种数据结构,称为"位域"或"位段"。

所谓"位域"是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。

典型的实例:

  • 用 1 位二进位存放一个开关量时,只有 0 和 1 两种状态。

  • 读取外部文件格式——可以读取非标准的文件格式。例如:9 位的整数。

位域的定义和位域变量的说明

位域的定义与结构的定义相仿,如:

struct 位域结构名 
{

 位域列表

};

其中位域列表的形式为:
类型说明符 位域名 :位域长度
例如:

struct bs{
    int a:8;
    int b:2;
    int c:6;
}data;

说明 data 为 bs 变量,共占两个字节。其中位域 a 占 8 位,位域 b 占 2 位,位域 c 占

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值