a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 67|回复: 0

[LPI认证] C语言中的枚举类型及在Linux系统中的作用

[复制链接]
发表于 2012-8-4 12:13:19 | 显示全部楼层 |阅读模式
[点评:枚举一般用于定义一个集合,如色彩,星期等等,他提供了更加贴近实际的对对象的描述,方便了编程工作.]
, s$ u- D% r9 J7 @  下面简单介绍下C语言中的枚举类型和在Linux系统中的作用。
( u: R; y/ V; J& u: `4 E/ O* z  枚举是一个被命名的整型常数的集合, 枚举在日常生活中很常见。+ O$ x2 u6 e5 j4 k' O9 t
  例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。0 }- U- U! F: d" ?7 U3 ?7 n, ?
  枚举的说明与结构和联合相似, 其形式为:
6 n0 {' s; }' O1 X& b/ v  enum 枚举名{
+ ^8 u- q5 r. v5 g4 ^- h* \  标识符[=整型常数],* V( K1 Z+ |% R
  标识符[=整型常数],
1 S2 E: j. \2 ?0 l, s  ...
2 E9 j  w! a" r  标识符[=整型常数],* H6 \3 j3 h4 U/ ^1 h
  } 枚举变量;
" i2 W; j& V$ b: w7 b  如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺! N) H  N* g4 ]% g
  次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次
9 z$ o  ~, {3 o  加1的规则确定其值。# T# n+ V' n' t, u$ }5 ~
  例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
5 U! o3 B+ y, M! E& y1 l7 B  enum string{x1, x2, x3, x4}x;) I' z. i: p/ n' B9 j# [: F
  当定义改变成:4 M( J/ c1 s  d7 h/ d: d, ^9 D
  enum string$ `( ]" E- E% ~, R
  {
; a; }# D2 _; h8 z  x1,
6 [0 J6 P" b. Z* `  x2=0,
8 C* [& Q6 |$ N. ^& d4 y3 j5 {  x3=50,
! B& H8 I/ j- `; A: D& \. Z" a8 O  o  }  x4,3 a7 y! Y3 L% s. h
  }x;
  M5 [" _8 _1 @  则x1=0, x2=0, x3=50, x4=512 Y& q1 R9 K* n3 d+ \/ m# Z
  注意:3 h/ R7 _) F* W2 W4 D+ T# u
  1. 枚举中每个成员(标识符)结束符是",", 不是";", 最后一个成员可省略, f: G. J5 W0 f, F% O) c
  ","。0 z& g6 {& o2 p; }5 l
  2. 初始化时可以赋负数, 以后的标识符仍依次加1。$ O* L- p8 I- g: o- A4 I* m& X  y  {% ^
  3. 枚举变量只能取枚举说明结构中的某个标识符常量。) g& [5 |! T; u( u, u3 P
  例如:
6 D) Q; D0 D# ^0 q3 K/ O& M' a  enum string
" W/ t3 r% Y8 n4 k( }1 g* c4 u  {
  u4 p/ ~* R9 w) B1 a% @6 _  x1=5," }  N. }: G  T' Q% l- E) ?, e
  x2,
: l% b- b9 P3 [6 f9 c8 N  x3,
, U# ^' `4 K( V# }1 b: j& M3 R  x4,
% V/ ]% d4 p# u% P* e3 Q  };+ c# L# }& v# P) T+ P# T
  enum strig x=x3;6 v4 ~3 U8 M# P
  此时, 枚举变量x实际上是7。0 D1 p" e4 F2 w( J4 G& L
  enum 关键字在c中用的是比较多的,它常用来定义标记整型常量,你去看许多操作系统的源代码,都有用这个关键字来一次定义许多标记整型常量,其实它相当于定义一个整型常量的表,青年人网提示方便应用时查找。当然他的大部分功能都可以被宏定义代替,不过毕竟enum关键字定义的东东是支持类型检查的,可以用编译器来发现一些错误(enum定义的只能是整型的常量表)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-4 18:30 , Processed in 0.162096 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表