C语言将枚举类型的变量和常量作为整数处理,在声明枚举类型时,如果没有为某枚举常量指定值时,则该枚举变量的值比前一个常量的值加1。如果第一个枚举常量为指定值,则其值默认为0。注意:枚举的值作为整数使用,但不要把整数作为枚举的值。(?)
可以使用标记和typedef定义枚举类型。
- typedef enum
- {
- GPIO_Speed_10MHz = 1,
- GPIO_Speed_2MHz,
- GPIO_Speed_50MHz
- }GPIOSpeed_TypeDef;
- //定义速度的枚举结构体
- GPIO_Speed_10MHz = 1,为枚举常量指定值为1
- GPIO_Speed_2MHz, 的值是2 ,该枚举变量的值比前一个常量的值加1,前一个常量值为1
- GPIO_Speed_50MHz,的值是3,该枚举变量的值比前一个常量的值加1,前一个常量值为2
通过查看端口寄存器(GPIOx_CRH)说明可以发现,赋值吻合。
00:输入模式(复位后的状态) 001:输出模式,最大速度10MHz 1
10:输出模式,最大速度2MHz 2
11:输出模式,最大速度50MHz 3
#define ____IO volitale
#define ____O volitale
static 表示只在本C文件里能调用,别的C文件不能调用