自定义类型(typedef)

(1)C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字。比如:

typedef  int  Length;    

使得Length成为int 类型的别名。

(2)这样,Length这个名字就可以代替 int 出现在变量定义和参数声明的地方了:

Length  a,b,len;

Length  numbers[10];

Typedef

声明新的类型的名字

——新的名字是某种类型的别名

——改善了程序的可读性

typedef long int64_t;  //重载已有类型的名字,新名字的含义更清晰,具有可移植性

int64_t  i=1000000000; 

typedef struct ADate{int month;int day;int year;
} Date;  //简化了复杂的名字 

typedef int Length;  //Length就等价于int类型

typedef *char[10] String;  //String是10个字符串的数组的类型

typedef struct node{int data;struct node *next;
} aNode;     //这样用aNode就可以代替struct node 

typedef struct  node aNode;  //这样用aNode就可以代替struct node 

联合

union AnElt{int i;char c;
} elt1,elt2;elt.i=4;
elt2.c='a';
elt2.i=0xDEADBEEF 

(1)存储

——所有的成员共享一个空间

——同一时间只有一个成员是有效的

——union的大小是其最大的成员

(2)初始化

——对第一个成员做初始化

union自己并不知道当时其中哪个成员是有效的
程序怎么知道当时elt1和elt2里面到底是int 还是 char?

最好的答案:另一个变量来表达这个事情。

union的用处

#include<stdio.h>typedef union{int i;char ch[sizeof(int)];
}CHI; int main()
{CHI chi;int i;chi.i=1234;for(i=0;i<sizeof(int);i++){printf("%02hhX",chi.ch[i]);}return 0;
}

这个结果表明我们所用的CPU是小端的。

转载于:https://www.cnblogs.com/Strugglinggirl/p/9080200.html

十三、结构类型(5)——联合相关推荐

  1. 结构类型(枚举、结构、联合)

    一.枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下的语法来声明: enum 枚举类型名字 {名字0,名字1,-,名字n}: (1)用枚举进行输入输出: 当我们需要一些可以排列起来的常量值 ...

  2. C#语言学习--基础部分(十三)枚举类型和结构体

    枚举类型和结构体都是属于值类型,他们的值保存在栈中. 1.枚举ConsoleDemo namespace EnumDemo {     enum Sean { Spring,Summer,Fall,W ...

  3. 不要伤害指针(3)--指针和结构类型的关系

    可以声明一个指向结构类型对象的指针. struct MyStruct {int a;int b;int c; }; struct MyStruct ss = {20,30,40};//声明了结构对象s ...

  4. C语言中的结构体,联合,链表和枚举,位域(上)

    结构名只能表示一个结构形式, 编译系统并不对它分配内存空间. 只有当某变量被说明为这种类型的结构时,才对该变量分配存储空间. 一.结构的定义 定义一个结构的一般形式为: struct 结构名 { 成员 ...

  5. C语言中结构体、联合(union)、枚举(enum)相关知识点

    一.结构 结构是一种由程序员自己设计的数据类型,用于描述一个事物的各项特征数据,由若干个类型不同的基础类型组成 设计: struct 结构类型名 { 类型 成员名1; 类型 成员名2; ... }; ...

  6. C#中将结构类型数据存储到二进制文件中方法

    以往在vb6,vc6中都有现成的方法将结构类型数据写入和读取到二进制文件中,但是在c#中却没有现成的方法来实现,因此我查阅了一些资料,借鉴了网上一些同学的做法,自己写了个类似的例子来读写结构类型数据到 ...

  7. Matlab中的结构类型struct

    结构(struct)数组 要在MALTAB中实现比较复杂的编程,就不能不用struct类型.而且在MATLAB中实现struct比C中更为方便. 4. 3.1 结构数组的创建 MATLAB提供了两种定 ...

  8. DELPHI学习---结构类型

    Structured types (结构类型) 结构类型的一个实例可包含多个值.结构类型包括集合.数组.记录,也包括类.类引用(class-reference) 和接口类型.除了集合只能包含有序值以外 ...

  9. Linux 命令之 arch --显示主机的硬件结构类型

    文章目录 介绍 命令示例 介绍 arch命令主要用于显示当前主机的硬件结构类型,arch命令输出的结果有:i386.i486.mips.alpha等. 此命令的适用范围:RedHat.RHEL.Ubu ...

  10. dotty编译器语法特性之一交叉类型,联合类型和文本单例类型

    2019独角兽企业重金招聘Python工程师标准>>> ###翻译:http://dotty.epfl.ch/docs/reference/intersection-types.ht ...

最新文章

  1. NTU 21fall-CE 7454(deep learning for data science)笔记
  2. python 创建子类_python创建子类的方法分析
  3. 力扣算法题—076最小覆盖子串
  4. PAT刷题笔记-PAT乙1018-锤子剪刀布
  5. 我的java编程之路小小总结感想
  6. 惠普打印机驱动安装找不到打印机
  7. 第1章-确定superboot210如何为smart210的nand flash进行的分区划分
  8. 解决超星网课问题之不能查询后台观看数据和不能观看超时被锁的课程
  9. 一元多次方程C语言,C语言解决多元多次方程.(19页)-原创力文档
  10. VS2019 配色_新手设计师如何做好设计配色
  11. 单独备份config配置文件 (来自老梁邮件)
  12. 用微软的云计算来远程管理自己的电脑
  13. w10计算机恢复出厂设置,如何给win10系统的电脑强制恢复出厂设置
  14. free源码分析---2
  15. 公认最好的鸿蒙系统,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  16. Unity Shader之燃烧消散效果
  17. linux 安装opanwrt虚拟机,Openwrt使用-虚拟机使用IMG镜像安装系统
  18. sketch html尺寸,为何sketch预置画布尺寸比真实分辨率小?
  19. Music Store(音乐商店)简易中文教程
  20. Android:RecyclerView滑动到边缘时的光晕效果

热门文章

  1. Oracle中可以代替like进行模糊查询的方法instr(更高效)
  2. Maven搭建Spring Security3.2项目详解
  3. etcd upgrade
  4. spirng 事物只支持 dml语句 update,insert delete
  5. Fedora 25-64位操作系统中安装配置Hyperledger Fabric过程
  6. Linux 内核与模块调试
  7. Android之解决太大太多图片造成的oom
  8. Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法
  9. Hyper-V上Linux的鼠标驱动
  10. Agile PLM Create Item /BOM Dialog