枚举(enum)是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。enum中定义的值是C语言中真正意义上的常量。
枚举类型的使用方法
- enum是C语言的一种自定义类型。
-
enum值是可以根据需要自定义的整型值。
-
第一个定义的enum值默认为0。
- 默认情况下的enum值是在前一个定义值的基础上加1.
- enum类型的变量只能取定义时的离散值。
enum Color
{
GREEN, // 0
RED = 2,
BLUE // 3
};
枚举类型的特殊意义
enum中定义的值是C语言中真正意义上的常量。前面提到过const在C语言里面其实只不过定义的是只读变量,并不是真正意义上的常量。
在工程中enum多用于定义整型常量。
enum //无名枚举,用于定义常量
{
ARRAY_SIZE = 10 //定义数组的大小
};
int array[ARRAY_SIZE] = {0};
int i = 0;
for (i=0; i < ARRAY_SIZE; i++)
{
array[i] = i + 1;
}
enum的使用示例
#include <stdio.h>
enum
{
ARRAY_SIZE = 10
};
enum Color
{
RED = 0x00FF0000,
GREEN = 0x0000FF00,
BLUE = 0x000000FF
};
void PrintColor(enum Color c)
{
switch( c )
{
case RED:
printf("Color: RED (0x%08X)\n", c);
break;
case GREEN:
printf("Color: GREEN (0x%08X)\n", c);
break;
case BLUE:
printf("Color: BLUE(0x%08X)\n", c);
break;
}
}
void InitArray(int array[])
{
int i = 0;
for(i=0; i<ARRAY_SIZE; i++)
{
array[i] = i + 1;
}
}
void PrintArray(int array[])
{
int i = 0;
for(i=0; i<ARRAY_SIZE; i++)
{
printf("%d\n", array[i]);
}
}
int main()
{
enum Color c = GREEN;
int array[ARRAY_SIZE] = {0};
PrintColor(c);
InitArray(array);
PrintArray(array);
return 0;
}
输出结果: