工作中遇到了一个函数func,参数类型是INT16U*
func(INT16U* addr)
此时需要将地址中的值取出并强转为枚举类型
typedef enum{
RISE = 0,
FALL = 1,
}TargetNum
typedef struct{
TargetNum AxisNum;
}Target
代码如下:
func(INT16U* addr)
{
Taeget input;
input.AxisNum = *((Target*)addr); //有问题
input.AxisNum = (Target)(*addr); //正确
}
枚举类型应该先解引用再进行强转