【发布时间】:2015-09-11 06:04:14
【问题描述】:
按照我的代码中定义的枚举
typedef enum e_gpio_pin
{
GPIO_PIN_1 = 1, /*!< pin 1 */
GPIO_PIN_2, /*!< pin 2 */
GPIO_PIN_3, /*!< pin 3 */
GPIO_PIN_4, /*!< pin 4 */
GPIO_PIN_5, /*!< pin 5 */
GPIO_PIN_6, /*!< pin 6 */
GPIO_PIN_7, /*!< pin 7 */
GPIO_PIN_8, /*!< pin 8 */
GPIO_PIN_9, /*!< pin 9 */
GPIO_PIN_10, /*!< pin 10 */
GPIO_PIN_FIRST = GPIO_PIN_1, /*!< first pin */
GPIO_PIN_LAST = GPIO_PIN_10 /*!< last pin */
} T_GPIO_PIN;
现在下面一行已经用来初始化变量了。
static const T_GPIO_PIN ioPin = GPIO_PIN_9;
我得到了以下警告
基本类型的表达式值'Essentially Enum' 分配给基本类型的对象 “本质上是枚举”评论:MISRA 10.3 (C90-2012 req.)
有人知道我该如何解决这个警告吗?
【问题讨论】:
-
Misra 10.3 规则说转换为较窄的类型,但您的初始化很好。
-
是的,请发布工具名称,以便他们在公共场合被点名和羞辱。那里有很多糟糕的分析器。
-
@user3386109 这里没有匿名枚举,怎么是重复的?
-
@user3386109
T_GPIO_PIN是匿名枚举吗? -
@user3386109
enum e_gpio_pin是匿名枚举吗?