我在我的.c
文件中声明了静态全局变量,如下所示。我正在为少数静态变量而不是所有静态变量观察这个问题。对于某些静态变量,它不会引发任何警告。
static uint8 EL_adv = 0;
我收到以下 MISRA 警告:
“可以在块范围内定义变量 'EL_adv' [MISRA 2012 规则 8.9,咨询] | pclint 9003”
如果我删除静态,那么我会收到如下错误。
uint8 EL_adv = 0;
“在没有事先声明的情况下定义的外部符号 'EL_adv' [MISRA 2012 规则 8.4,必需] | pclint 9075”
我正在使用如下代码,我将在 fun1 中获取变量的值,并将使用 fun2 和 fun3 中的值。
void EL_ReadAll(void)
{
EL_adv = getValue();
}
void get_my1_EL_Adv()
{
my1EL_Adv = EL_adv;
}
void get_my2_EL_Adv()
{
my2EL_Adv = EL_adv;
}