当前位置: 首页 > news >正文

新叶集1

新叶集1

汇总了《C语言程序设计》中(对笔者而言的)新知识。

一、结构体位段

掌握:结构体位段的特性、定义含位段的结构体变量、赋值和使用位段成员。

特性

一般而言,数据存取都是以字节(Byte : 1 Byte = 8 bits)为单位的。但有时存储一个数据仅需若干个二进制位(bit)即可,从而节省存储空间

定义

struct packed_data
{unsigned short a:2;	//指定成员a占2位unsigned short b:6;	//指定成员b占6位unsigned short c:5;	//指定成员c占5位unsigned short d:3;	//指定成员d占3位short int i;	//指定成员i为短整型,占16位
}data;	//定义结构体类型变量data

变量data的内存分配如图1,共占4字节。

位段的存取方法与结构体成员的存取方法相同。

若有:data.a = 2 , data.b = 37 , data.c = 28 , data.d = 6 , data.i = 300 ,则内存数据图如图2。

赋值

给位段成员赋值时,应注意成员的取值范围,取值范围由位段占几位决定。

注意事项

(1)一个位段的长度不能超过一个存储单元(8位)。

(2)一个位段不能跨越两个存储单元。若当前存储单元剩余的二进制位数小于位段长度,则剩余的二进制位不用,系统自动到下一个存储单元为该位段分配空间(不够用,跳下一个)。

(3)不想用的二进制位可以定义为无名位段,例如

struct packed_data
{unsigned short a:2;unsigned short :6;	//无名位段,占6位,不用unsigned short c:5;unsigned short d:3;short int i;
}data;

(4)设置长度为0的位段,使得下一个位段从下一字节开始存放,例如

struct packed_data
{unsigned short a:2;unsigned short b:0;	//位段长度为0unsigned short c:5;	//位段c从下一字节开始存放unsigned short d:3;short int i;
}data;

(5)位段成员的类型必须指定无符号整型

(6)位段数据可以按整型数据引用和输出。

(7)不能定义位段数组。

实例

由此可见,分析结构体位段,首先要计算结构体变量所占空间,再根据结构体成员所占空间和赋的值,画出内存数据图。

若需将整个结构体变量按十六进制输出,则可把内存数据图每四位一分段,每段对应一个十进制数。

二、共用体类型

三、枚举类型

四、文件系统

http://www.jsqmd.com/news/313686/

相关文章:

  • 【Linux】进程概念(四)(命令行参数和环境变量) - 详解
  • MySQL--库的操作、数据类型、表的操作
  • Spring 框架: IOC、DI、AOP 三大核心
  • 运行报表:支撑IT外包公司为客户交付全栈网络报表分析方案
  • 季度管理升级:助力设备商为客户交付季度协同管理升级方案
  • aiohttp+asyncio 实现高并发异步爬虫
  • Thinkphp和Laravel+办公管理系统_
  • HTML元素+网页布局区块概念汇总表
  • Thinkphp和Laravel儿童性教育新闻文章论坛网站_
  • matlab simulink 使用ros2 的sub和pub需要注意的事项,以及部署事项(注意事项)
  • 人工智能数据分析科学家:20个月系统培养大纲 (1.0版)【20260128】002篇
  • 热销榜单:2026年抗菌抗病毒无纺布供应商推荐
  • Excel CHOOSE函数全攻略:从基础选择到高级数据重组的全能工具
  • Excel INDIRECT函数深度解析:动态引用的终极武器
  • 04基于观测器的线性多智能体事件触发一致性
  • Reddit营销:如何在Reddit写出“像用户一样”的营销贴?、
  • SQL 注入已死?WAF 绕过实战:我是如何攻破这个“固若金汤”的防火墙的
  • AIGC设计:内容生成与场景落地的核心方法与实践指南
  • AI绘图:快速出好图的核心技巧与常见误区
  • 2026毕设ssm+vue旅游分享平台论文+程序
  • 2026毕设ssm+vue旅游服务软件论文+程序
  • 2026毕设ssm+vue旅游出行系统论文+程序
  • 2026毕设ssm+vue旅游打卡系统论文+程序
  • ArcGIS Python零基础脚本开发教程---1.1 Describe 函数
  • 探秘Silane-PEG8-DBCO,硅烷-聚乙二醇8-二苯并环辛炔:三功能连接分子的设计与应用
  • 2026毕设ssm+vue旅游管理系统论文+程序
  • 向量数据库到底香不香?这篇选型指南帮你不再踩坑
  • 全网热议!2026年知名全自动砖机公司排名推荐,发现高品质固废与液压砖机厂家
  • 铁轨表面缺陷检测这事儿听起来挺硬核,但用MATLAB玩起来其实有点意思。咱们直接撸代码说人话,先搞张铁轨灰度图读进来
  • 【RAG】99-AI大模型应用RAG工程培训总体介绍