在C语言中有一种对软件工程来讲,可以大大提高程序可读性的数据类型,那就是枚举(enum)。一般的定义方式如下:
enum enum_type_name{
ENUM_CONST_1,
ENUM_CONST_2,
...
ENUM_CONST_n
} enum_variable_name;
enum_type_name是自定义的一种数据数据类型,而enum_variable_name为enum_type_name类型的一个变量。实际
上enum_type_name类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name 类型的变量
enum_variable_name只能取值为花括号内的任何一个值,如果赋给该类型变量的值不在列表中,则会报错或者警告。
实际上在此定义了一组常量:ENUM_CONST_1、ENUM_CONST_2、...、ENUM_CONST_n,这些常量可以用来给任何一种类型的数据赋值,在这种意义下与#define定义的常量几乎没有区别。
enum变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,它们的值从0开始依次递增1。如分别用一个常数表示不同颜色
typedef enum{
GREEN = 1,
RED,
BLUE,
GREEN_RED = 10,
GREEN_BLUE
}Color.
其中各常量名代表的数值分别为:
GREEN = 1
RED = 2
BLUE = 3
GREEN_RED = 10
GREEN_BLUE = 11
在软件的设计中或许是这样用的:
typedef enum tagHV_COMMAND_CODE {
CMD_GET_BYTE_PER_PACKET = 0x10,
CMD_SET_BYTE_PER_PACKET = 0x11,
CMD_FRAME_SHOT = 0x12,
CMD_FRAME_SHOT_FINISH = 0x13,
CMD_GET_LUT_DWENTRIES = 0x14,
CMD_SET_LUT_DWENTRIES = 0x15,
CMD_SPEC_FUN_INTERFACE1 = 0x80
} HV_COMMAND_CODE;
在一个数据类型的里面定义具体的变量,这样在程序使用的时候更方便。
文章评论(0条评论)
登录后参与讨论