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

C语言中的结构体,枚举,联合体的学习

结构体

结构就是一些数据的集合,将数据整合起来。

结构体的声明 

 

{}后的" ; " 不能丢掉,{}内为结构体的成员。

结构体的定义和初始化

 

结构体的对齐规则

  1. 第一个成员的地址在与结构体变量偏移量为0的地址。
  2. 其他成员变量要对齐到对齐数的整数倍的地址处。
    对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。
    VS中默认的值为8
    Linux中没有默认对齐数,对齐数就是成员自身的大小
  3. 结构体总大小为最大对齐数的整数倍
  4. 如果嵌套了结构体,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的总大小只能是所有最大对齐数的整数倍。
  5. 可以使用#pragma pack(要修改为的默认对齐数)   来修改默认对齐数

枚举

意思就是列举,可以将生活中的有限的类型列举出来,比如三原色,星期几,还有性别,月份等,就可以使用枚举。

枚举的定义

 上面的enum Day是枚举的类型,"{ }"中的内容是枚举类型可能的取值,也被称为枚举常量。

这些取值都是有值的,默认从0开始,依次向后递增加1,定义时也可以给初始值赋值。

枚举的优点

  1. 使代码更加容易读懂,而不是简单的数字,可以根据字符来理解意思,维护起来更方便,只需要在指定位置修改即可,不用到处修改用到该变量的地方。
  2. 与#define定义的标识符比较有类型检查
  3. 防止与其他地方命名同名造成污染变量,影响其他变量
  4. 便于调试,能够在调试时观察到常量的存在
  5. 使用更加方便,可以一次定义多个常量,使代码不过于臃肿

枚举的使用

联合体

联合体的定义

 这些类型定义的变量也包含一系列成员,特征是这些成员共用同一块空间。

联合体的声明

联合体的特点

联合的成员共用一块内存空间,因此联合体的大小至少是联合体最大成员的大小,且所有成员的起始地址相同。

 

 联合体大小的计算

联合体的大小至少是联合体最大成员的大小        

当最大成员的大小不是最大对齐数的整数倍时,就要对齐到最大对齐数的整数倍数

相关文章:

  • 知识就是力量——HELLO GAME WORD!
  • [vue]更新数组
  • SSE服务器主动推送至浏览器客户端,让你不再需要websocket
  • React.memo、useMemo、useCallback性能优化总结
  • 嵌入式软件设计规范框架(MISRA-C 2012增强版)
  • VS Code C/C++项目设置launch.json中的environment参数解决支持库路径问题
  • Linux——线程互斥和同步
  • Dify+ollama+vanna 实现text2sql 智能数据分析 -01
  • 【第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组】C语言代码
  • Windows 系统下多功能免费 PDF 编辑工具详解
  • 二分类与多分类
  • # 基于 OpenCV 的运动目标检测与跟踪
  • C++ 多态:面向对象编程的核心概念(二)
  • RISC-V AIA学习3---APLIC第三部分
  • 基于python的电影数据分析及可视化系统
  • Sentinel[超详细讲解]-3
  • JavaScript 中的原型链与继承
  • 自用大模型学习笔记--transformer(不定期更新,欢迎挑错)
  • VS 2022,配置PCL 1.12.0,C#使用C++/CLI调用
  • Spring Boot 3.4.3 基于 SpringDoc 2 和 Swagger 3 实现项目接口文档管理
  • 特种作业操作证查询网官网/seo如何优化的
  • 如何制作一个论坛网站/百度竞价排名怎么做
  • 合肥专业网站排名推广/b站视频推广网站2023年
  • 写作网站挣钱对比/全球最大的中文搜索引擎
  • 中国建设银行复核网站/新闻头条 今天
  • 凡科的模板做网站/谷歌google下载