c/c++ 联合体与枚举

联合体

c/c++ 联合体与枚举


  • 思考:
    • 假设有一个对象,它可能是 矩形、圆形、三角形;
    • 那么这个时候怎么来描述这个对象呢??
    • c/c++ 联合体与枚举
    • 对象这个的内存,是全部包含了,所有的形状;
    • 对内存是一个浪费;
    • 为了解决这种内存浪费、就需要使用联合体

  • 定义矩形,圆形,三角形;
    • c/c++ 联合体与枚举
  • 联合体的定义
    • union 联合体的名字{联合的每一个项};
      • c/c++ 联合体与枚举
      • 只有可能存放联合的内容其中的一个;
      • 想存什么就什么;
  • 内存布局:每一个联合的项都从联合体的起始内存开始排列;
    • c/c++ 联合体与枚举
  • 被联合里面占的内存最大的项就是这个联合体的大小;
  • 联合体内存大小是最大的一个联合项所占的内存;
    • c/c++ 联合体与枚举
  • 联合体初始化
    • c/c++ 联合体与枚举
    • 联合体可以有地址,也可以有指针;


枚举类型

c/c++ 联合体与枚举


  • 用一个有意义的名字来表示整数
    • #define WIDTH 400
    • 用一组有意义的名字来表示,每个名字是用整数来表示;
    • 称作枚举;
    • 音乐的类型: WAV,MP3,OGG,AMR……
    • 一组类型,每个类型用整数来表示;
      • c/c++ 联合体与枚举

Shape描述

c/c++ 联合体与枚举


c/c++ 联合体与枚举
c/c++ 联合体与枚举
c/c++ 联合体与枚举


项目源码下载