【C语言】共用体、枚举体、typedef 声明新类型名小结 |
您所在的位置:网站首页 › c语言程序使用说明 › 【C语言】共用体、枚举体、typedef 声明新类型名小结 |
author:Carlton book:谭浩强 《C语言程序设计 第五版》 tag:C语言 topic:共用体、枚举体、typedef 声明新类型名 time:2023 年 6 月 30 日 目录 共用体 使用场景: 声明与定义方式: 引用方式: 枚举体 使用场景: 声明与定义方式: typedef 声明新类型名 使用场景: 使用方法: 与#define 的相似与不同: 共用体 使用场景:用同一段内存单元存放不同类型的变量,即同一个栏目来表示不同的内容。 e.g 用同一个表格输入、输出学生和老师的数据,共同的有姓名、年龄、性别等等,其中学生和老师的“职位”不同。 思路:结合结构体与共用体,使用结构体数组分别存储学生、老师的数据,其中结构体数组元素的成员 — — job用共用体数据类型,加以 if 判断区分。 声明与定义方式: union 共用体名 { 成员表列 }变量表列; e.g union Data { int i; char ch; float f; }a,b,c; 引用方式: 只能引用共用体变量中的成员而表示共用体变量本身,因为每一瞬间共用体变量只有一个值,后面的值会覆盖前面的值。 但同类型的共用体变量可以互相赋值。 枚举体使用场景: 把可能的值一 一列出来,变量的值只限于列举出来的值的范围内。 枚举元素选用 “见名知义” 的名字。 e.g 口袋中有红、黄、蓝、绿、黑五种颜色的球若干个,每次从口袋先后取出3个球,求得到3种不同颜色的球的可能取法,且输出每种排列的情况。 思路: 球只能是5种颜色之一,而且要判断各球是否同色,用枚举类型变量处理,且用switch语句判断数值输出取法。 声明与定义方式: enum [枚举名] {枚举元素列表} 枚举变量列表; e.g enum Weekday{sun,mon,tue,wed,thu,fri,sat} workday,weekend;枚举元素又称枚举常量,其值只限于花括号里特定值之一,按常量处理,不能对他们赋值。 每一个枚举元素都代表一个整数,编译按定义时的顺序默认他们的值为0,1,2,3……,但也可以显式地指定,如: enum Weekday {sun=7,mon=1,tue,wed,thu,fri,sat} workday, week_end; typedef 声明新类型名 使用场景:
用新类型名来代替已有的类型名。 不同源文件用到同一类型数据(尤其像是数组、指针、结构体、共用体等类型数据),常用typedef 声明一些数据类型(放在一个头文件里,在需要用到的文件中用 #include 指令来包含) 提高程序的通用与移植性。 e.g 有的计算机系统 int 数据类型占两个字节,有的为4个字节,则从前者移植到后者一般需要将所有 int 改为 long,改动多处。现可以通过 typedef 用一个Integer来代替: typedef int Integer; 改为 typedef long Integer; 使用方法:
按定义变量的方式,把变量名换上新类型名,在最前头加上 typedef e.g int a[100] 👉 typedef Num[100] char *p 👉 typedef char *Pointer 使用: Num a,b,c,d; //定义了4个包含100个元素的一维数组变量 Pointer a,b,c,d; //定义了4个指向字符类型数据的指针变量 与#define 的相似与不同:
typedef int Count; #define Count int 前者是生成了一个类型名,后者是字符串替换。 欢迎“指针”与“PP“(criticize),thanks! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |