在调试lorawan 代码时,发现枚举变量被强行转换成了uint8_t 类型。
typedef enum
{
MCU_PINS,
IOE_PINS,
// Not connected
NC = (int)0xFFFFFFFF
}PinNames;
typedef struct
{
PinNames pin;
uint16_t pinIndex;
void *port;
uint16_t portIndex;
PinTypes pull;
void* Context;
GpioIrqHandler* IrqHandler;
}Gpio_t;
obj->pin = NC;
//此时 obj->pin 本应该等于 0xFFFFFFFF ,但是在调试的时候发现它等于0xFF
这个需要在编译的时候强制将枚举变量编译成int 类型。