news 2026/6/18 16:17:38

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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. 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 6:47:47

XGBoost机器学习库完整安装配置手册

XGBoost机器学习库完整安装配置手册 【免费下载链接】xgboost dmlc/xgboost: 是一个高效的的机器学习算法库&#xff0c;基于 C 开发&#xff0c;提供用于提升分类、回归、排序等任务的性能。 项目地址: https://gitcode.com/gh_mirrors/xg/xgboost XGBoost是一款高效的…

作者头像 李华
网站建设 2026/6/10 19:17:33

【毕业设计】基于python-CNN卷积神经网络对猫是否疲劳识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/16 14:44:26

FramePack深度解密:智能视频帧优化的高效创作密码

FramePack深度解密&#xff1a;智能视频帧优化的高效创作密码 【免费下载链接】FramePack 高效压缩打包视频帧的工具&#xff0c;优化存储与传输效率 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack 在AI视频创作领域&#xff0c;FramePack正在重新定义动态图像…

作者头像 李华
网站建设 2026/6/17 9:20:28

Zoplicate插件完全指南:高效解决Zotero重复条目管理难题

Zoplicate插件完全指南&#xff1a;高效解决Zotero重复条目管理难题 【免费下载链接】zoplicate A plugin that does one thing only: Detect and manage duplicate items in Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zoplicate 在Zotero文献管理过程中&am…

作者头像 李华
网站建设 2026/6/10 17:11:44

通信原理篇---AM\DSB\SSB\FM系统性能对比

第一部分&#xff1a;四大模拟调制技术对比总表维度AM (调幅)DSB (双边带)SSB (单边带)FM (调频)核心原理幅度随信号线性变化&#xff0c;保留载波幅度随信号线性变化&#xff0c;抑制载波只传一个边带&#xff0c;抑制载波和另一边带频率随信号线性变化&#xff0c;幅度恒定时…

作者头像 李华
网站建设 2026/5/28 19:25:48

番茄小说下载器:3步搞定离线阅读的终极方案

番茄小说下载器&#xff1a;3步搞定离线阅读的终极方案 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 还在为网络信号不好而错过精彩小说情节烦恼吗&#xff1f;番茄小说下载…

作者头像 李华