当前位置: 首页 > 图文教程 > 开发语言 > C/C++ > C/C++:C语言中的枚举(enum)

C/C++
C和C++的特点
pragma 预处理指令详解
C++ 中什么是内联函数
C/C++没有数组
C/C++返回内部静态成员的陷阱
学好C/C++的办法
C/C++中时间函数的介绍
c/c++混合编程
c/C++内存分配
[转]浅谈C语言学习与C++语言学习的关系
托管C++
windows进程中的内存结构
C++学习重点分析
浅析scanf()函数中%[]格式控制符
C/C++:一个跨平台的 C++ 内存泄漏检测器
C/C++:C/C++时间函数使用方法
C/C++:线程冲突你了解多少?
C/C++:小编浅谈函数宏应用优缺点
C/C++:小编谈C语言函数那些事(1)
C/C++:小编谈C语言函数那些事(2)

C/C++:C语言中的枚举(enum)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 1611 ::
收藏到网摘: n/a

 枚举是一个被命名的整型常数的集合, 枚举在日常生活中很常见。所以今天小编和大家一起来讨论下C语言中的枚举。

    例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,

SATURDAY, 就是一个枚举。

    枚举的说明与结构和联合相似, 其形式为:

          enum 枚举名{

               标识符[=整型常数],

               标识符[=整型常数],

               ...

               标识符[=整型常数],

          } 枚举变量;

    如果枚举没有初始化, 即省掉"=整型常数", 则从第一个标识符开始, 

次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次

1的规则确定其值。

    例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3

     enum string{x1, x2, x3, x4}x;

    当定义改变成:

      enum string

      {

          x1,

          x2=0,

          x3=50,

          x4,

      }x;

    x1=0, x2=0, x3=50, x4=51

    注意:

    1. 枚举中每个成员(标识符)结束符是",",  不是";", 最后一个成员可省略

","

    2. 初始化时可以赋负数, 以后的标识符仍依次加1

    3. 枚举变量只能取枚举说明结构中的某个标识符常量。

    例如:

      enum string

      {

          x1=5,

          x2,

          x3,

          x4,

      };

     enum strig x=x3;

    此时, 枚举变量x实际上是7

接着,小编再和大家说说类型说明

    类型说明的格式为:

     typedef 类型 定义名;

    类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型。这

里类型是Turbo C许可的任何一种数据类型。定义名表示这个类型的新名字。

    例如: 用下面语句定义整型数的新名字:

     typedef int SIGNED_INT;

    使用说明后, SIGNED_INT就成为int的同义词了, 此时可以用SIGNED_INT

义整型变量。

    例如:  SIGNED_INT i, j;(int i, j等效)

    long SIGNED_INT i, j; 是非法的。

    typedef同样可用来说明结构、联合以及枚举。

    说明一个结构的格式为:

      typedef struct{

          数据类型  成员名;

          数据类型  成员名;

          ...

        } 结构名;

    此时可直接用结构名定义结构变量了。例如:

     typedef struct{

          char name[8];

          int class;

          char subclass[6];

          float math, phys, chem, engl, biol;

      } student;

      student Liuqi;

    Liuqi被定义为结构数组和结构指针。

    在第二节讲过的文件操作中, 用到的FILE就是一个已被说明的结构, 其说明

如下:

     typedef struct

     {

          short level;

          unsigned flags;

          char fd;

          unsigned char hold;

          short bsize;

          unsigned char *buffer;

          unsigned char *curp;

          unsigned istemp;

          short token;

     } FILE

    这个结构说明已包含在stdio.h, 用户只要直接用FILE 定义文件指针变量

就可以。事实上, 引入类型说明的目的并非为了方便, 而是为了便于程序的移植。

说了这么多,希望对大家有所帮助,有任何疑问大家可以到软晨学习网论坛里发帖讨论。