"Expression Used in the condition always yields the same result" C 中的警告
"Expression Used in the condition always yields the same result" warning in C
我想知道 Expression Used in the condition always yields the same result
Misra 警告的确切含义。这是我正在使用的代码。
#define bool_new_timer_val (Time_cnt < 4sec)
if( (bool_new_timer_val == True) ||
(mystruct.bool_u8_status1 != 0x0) ||
((mystruct.bool_u8_status1 == 0x0) && (bool_old_timer == True)) ||
(mystruct.bool_u8_status2 == True) ||
(mystruct.bool_u8_status3 == True))
{
// update the logic
}
虽然 运行 Misra,但我收到 Expression 'mystruct.bool_u8_status1' used in the condition always yields the same result
的警告。
问题指向行 ((mystruct.bool_u8_status1 == 0x0) && (bool_old_timer == True))
我想知道这个警告是什么意思。我的猜测是值 mystruct.bool_u8_status1
总是设置为 0x0
。这是正确的理解吗?有什么建议吗?
查看您的代码:
(mystruct.bool_u8_status1 != 0x0) ||
((mystruct.bool_u8_status1 == 0x0) && (bool_old_timer == True)) ||
如果 mystruct.bool_u8_status1 != 0x0
的计算结果为 TRUE,则不计算第二行。
如果 mystruct.bool_u8_status1 != 0x0
的计算结果为 FALSE,则代码等同于
(FALSE) ||
((TRUE) && (bool_old_timer == True)) ||
这到底就是
((bool_old_timer == True)) ||
所以尝试编写如下代码:
(mystruct.bool_u8_status1 != 0x0) ||
(bool_old_timer == True) ||
我想知道 Expression Used in the condition always yields the same result
Misra 警告的确切含义。这是我正在使用的代码。
#define bool_new_timer_val (Time_cnt < 4sec)
if( (bool_new_timer_val == True) ||
(mystruct.bool_u8_status1 != 0x0) ||
((mystruct.bool_u8_status1 == 0x0) && (bool_old_timer == True)) ||
(mystruct.bool_u8_status2 == True) ||
(mystruct.bool_u8_status3 == True))
{
// update the logic
}
虽然 运行 Misra,但我收到 Expression 'mystruct.bool_u8_status1' used in the condition always yields the same result
的警告。
问题指向行 ((mystruct.bool_u8_status1 == 0x0) && (bool_old_timer == True))
我想知道这个警告是什么意思。我的猜测是值 mystruct.bool_u8_status1
总是设置为 0x0
。这是正确的理解吗?有什么建议吗?
查看您的代码:
(mystruct.bool_u8_status1 != 0x0) ||
((mystruct.bool_u8_status1 == 0x0) && (bool_old_timer == True)) ||
如果 mystruct.bool_u8_status1 != 0x0
的计算结果为 TRUE,则不计算第二行。
如果 mystruct.bool_u8_status1 != 0x0
的计算结果为 FALSE,则代码等同于
(FALSE) ||
((TRUE) && (bool_old_timer == True)) ||
这到底就是
((bool_old_timer == True)) ||
所以尝试编写如下代码:
(mystruct.bool_u8_status1 != 0x0) ||
(bool_old_timer == True) ||