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

C/C++
VC++ SMTP协议电子邮件传送剖析
Managed C++设计新邮件检查器
解决两个难懂的安全性问题
高级扫描技术及原理介绍
VC的另类数据库编程
Visual C++6.0 API函数操作技巧集
托盘编程全接触
在Visual C++中使用内联汇编
理解 Visual C++ Extensions for ADO
TCP/IP Winsock编程要点
VC打造自己特色的屏幕保护
Windows Sockets API实现网络异步通讯
程序界面多模式显示的实现
VC++6.0中控制运行唯一实例
WDM驱动程序设计之编译安装篇
VC编程中如何操作数据库中的图像字段
Windows 9X硬件中断设备驱动程序的开发
用控件聚合技术为FlexGrid增添PickList功能
用ATL和MFC来创建ActiveX控件
用VC进行COM编程所必须掌握的理论知识

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 1615 ::
收藏到网摘: 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 定义文件指针变量

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

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