说明:
枚举型是预处理指令#define的替代。 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。 类型定义以分号;结束。 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。联发科的一道笔试题:
- #include <iostream>
- #include <stdio.h>
- using namespace std;
- enum value
- {
- value1,
- value2,
- value3=0,
- value4=50,
- value5,
- };
- void main()
- {
- int i=1;
- do{
- cout<<value5+i<<",";
- i++;
- if(i<4)
- continue;
- break;
- }while(value2);
- }
枚举与sizeof
- #include <stdio.h>
- enum WEEK
- {
- sat=2,
- sun,
- mon=11,
- tue,
- };
- int main(void)
- {
- printf("%d %d %d\n",sun,tue,sizeof(tue)); //3 12 4
- printf("%d %d %d\n",sizeof(0),sizeof(WEEK),sizeof(sat)); //4 4 4
- return 0;
- }
- #include<stdio.h>
- enum
- {
- BELL = '\a',
- BACKSPACE = '\b',
- HTAB = '\t',
- RETURN = '\r',
- NEWLINE = '\n',
- VTAB = '\v',
- SPACE = ' '
- };
- enum BOOLEAN { FALSE = 0, TRUE } match_flag;
- void main()
- {
- int index = 0;
- int count_of_letter = 0;
- int count_of_space = 0;
- char str[] = "I'm Ely efod";
- match_flag = FALSE;
- for(; str[index] != '\0'; index++)
- if( SPACE != str[index] )
- count_of_letter++;
- else
- {
- match_flag = (enum BOOLEAN) 1;
- count_of_space++;
- }
- printf("%s %d times %c", match_flag ? "match" : "not match", count_of_space, NEWLINE);
- printf("count of letters: %d %c%c", count_of_letter, NEWLINE, RETURN);
- }