zoukankan      html  css  js  c++  java
  • 枚举、联合

    枚举enum、联合union成员共用一个变量缓冲区

    enum是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型

    有些变量的取值被限定在一个有限的范围内

    枚举值是常量不是变量,不能再对它赋值

    0,1,2,3,4 …

    enum weekday{sun,mon,tue,wed,thu,fri,sat};

    weekday a, b;

    enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b;

    enum {sun,mon,tue,wed,thu,fri,sat}a,b;

    只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换

    a=(enum weekday)2;    a = (weekday)2;

    即 a=tue;

     

    inline week operator++( week &rs, int ) {   //重载后++    a++时还需判断是否超出范围

           week oldWeek = rs;

           rs = (week)(rs + 1);

           return oldWeek;

    }

     

     

    union  所有成员共用一个空间,并且同一时间只能储存其中一个成员变量的值

    union foo

    {

           int I;

           char c;

           double k;

    }

    union foo bar;   8个字节

     

    {char s[10]; int a;  }   10、 4   所以占12个字节

     

    union的成员不可以为静态、引用,如果是自定型态的话,该自订型态成员不可以有建构函式、解构函式或是复制指定运算子。

     

    对一个成员赋值,其他成员的值就不存在了。

  • 相关阅读:
    内核随记(三)同步(1)
    排列算法
    SQLite入门与分析(八)存储模型(3)
    内核随记(一)——理解中断(2)
    dup与dup2系统调用
    内核随记(四)文件系统(1)
    SQLite入门与分析(八)存储模型(2)
    SQLite入门与分析(九)VACUUM命令分析
    c中static变量局部变量
    (i++)+(i++)与(++i)+(++i)
  • 原文地址:https://www.cnblogs.com/xslwm/p/7172977.html
Copyright © 2011-2022 走看看