stm32编程,枚举引用的问题

img

img


如图所示在.h文件定义了一个枚举,在.c文件中枚举中的元素被直接引用了,不应该是通过LED_Num_t. LED1才能使用吗?为什么这里可以直接使用,是怎么实现的,求帮忙解答下,万分感谢!

LED_Num_t. LED1这种写法是结构体的写法,枚举你可以当做一个类型来用(LED_Num_t abc,定义一个枚举类型的变量abc),也可以直接当做一个数来用(a = LED1;)。对于枚举类型,它里面的元素是可以直接使用,没有任何限制,就跟你定义一个全局变量一样用。而值就是里面定义的值。所以.c文件中枚举中的元素可以被直接引用。结构体的话就需要是那个结构体变量里面的成员才能使用里面的元素

LED_Num_t. LED1这种写法绝对是错误的。即使要明确LED1所属的类型,也是用LED_Num_t::LED1的形式。
如果LED1没有二义性,编译器可以明确其来源,可以不需要强调来源;如果有多个地方有LED1的定义,那么需要明确使用哪个域的

命名不重复直接用不会报错
这不就是枚举值么
可以看做1 2 3