【C语言】共用体、枚举体、typedef 声明新类型名小结

您所在的位置:网站首页 c语言程序使用说明 【C语言】共用体、枚举体、typedef 声明新类型名小结

【C语言】共用体、枚举体、typedef 声明新类型名小结

2023-07-11 21:04| 来源: 网络整理| 查看: 265

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