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

C语言--自定义类型(联合和枚举)

1.联合体

a.联合体类型的声明

像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所 以联合体也叫:共⽤体。 给联合体其中⼀个成员赋值,其他成员的值也跟着变化。

#include <stdio.h> //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union Un un = {0}; //计算连个变量的⼤⼩ printf("%d\n", sizeof(un)); return 0; }

输出为4;

b.联合体的特点

联合的成员是共⽤同⼀块内存空间的,这样⼀个联合变量的⼤⼩,⾄少是最⼤成员的⼤⼩(因为联合 ⾄少得有能⼒保存最⼤的那个成员)

c.联合体大小计算

联合的⼤⼩⾄少是最⼤成员的⼤⼩。

当最⼤成员⼤⼩不是最⼤对⻬数的整数倍的时候,就要对⻬到最⼤对⻬数的整数倍。

#include <stdio.h> union Un1 { char c[5]; int i; }; union Un2 { short c[7]; int i; }; int main() { //下⾯输出的结果是什么? printf("%d\n", sizeof(union Un1)); printf("%d\n", sizeof(union Un2)); return 0; }

输出为8和16;

d.判断大小端

int check_sys() { union { int i; char c; }un; un.i = 1; return un.c;//返回1是⼩端,返回0是⼤端 }

2.枚举

enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun };

这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值

枚举的优点: 1. 增加代码的可读性和可维护性

2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。

3. 便于调试,预处理阶段会删除 #define 定义的符号

4. 使⽤⽅便,⼀次可以定义多个常量 5. 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤

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

相关文章:

  • C语言--自定义类型(联合和枚举)
  • 导师推荐8个AI论文平台,自考学生轻松搞定毕业论文!
  • 国企“高级”程序员写的那些问题代码
  • FramePack智能视频创作:从静态图像到动态动画的完整工作流
  • XGBoost完整安装配置指南:从入门到精通
  • 【Windows 文件系统管理工具】实用工具之XYplorer 完全指南:专业级文件系统管理的终极解决方案
  • 计算机深度学习毕设实战-基于python-CNN卷积神经网络对猫是否疲劳识别
  • 番茄小说下载器:打造离线阅读的终极解决方案
  • Scarab空洞骑士模组管理器:5分钟快速上手指南
  • 【计算机毕业设计案例】基于python-CNN卷积神经网络对猫是否疲劳识别
  • 番茄小说下载器:简单三步打造离线图书馆的终极方案
  • 番茄小说下载器:3步搞定离线阅读的终极方案
  • 深度学习毕设选题推荐:基于python-CNN卷积神经网络的鱼类识别
  • 深度学习计算机毕设之基于python-CNN卷积神经网络对猫是否疲劳识别
  • Zoplicate插件完整指南:彻底告别Zotero重复条目困扰
  • 【无人机追踪】联盟组建 + 精准 Dubins 曲线能耗计算 + 多无人机协同作战附Matlab代码
  • 深度学习计算机毕设之基于python-深度学习的混凝土马路和泥地马路识别
  • Windows系统瘦身终极指南:告别卡顿与臃肿
  • Infinigen完全指南:从零开始构建程序化虚拟世界
  • 彼得林奇对公司研发效率与专利质量关系的分析
  • Win11Debloat:一键清理Windows冗余,让你的电脑重获新生
  • Win11终极清理指南:快速释放系统性能的完整方案
  • 独家解读:AI在心理健康监测应用的关键要点
  • 【计算机毕业设计案例】基于python-CNN深度学习对宠物体型识别
  • 深度学习计算机毕设之基于python-CNN卷积神经网络对海洋壳类生物识别
  • BMP390L数字大气压传感器原理图设计,已量产(压力传感器)
  • 如何用Zoplicate插件彻底告别文献管理烦恼?
  • 空洞骑士Scarab模组管理器:从零开始的完整安装使用教程
  • 彻底关闭win11自动更新的方法,Win11永久关闭系统更新的6种有效方法
  • 深度学习毕设项目:基于python-CNN卷积神经网络对海洋壳类生物识别