我有以下代码:
#define NUMBER_OF_ROOMS
if((unsigned int)(NUMBER_OF_ROOMS - 2) > 20)
{
// do something here
}
但我得到了一个lint警告的: Warning 506: Constant value Boolean
,这是什么意思,如何解决?
我有以下代码:
#define NUMBER_OF_ROOMS
if((unsigned int)(NUMBER_OF_ROOMS - 2) > 20)
{
// do something here
}
但我得到了一个lint警告的: Warning 506: Constant value Boolean
,这是什么意思,如何解决?
这意味着,表达式的值是恒定的,并且因此if
因为它在编译时它是否会是真或不知道是没有意义的。
你当然可以使它更有活力,或者使用预处理器来代替:
#if (NUMBER_OF_ROOMS - 2) > 20
// do something here
#endif
我假设转换到(unsigned int)
是没有意义的,如果这些真的是接近的整数精度的界限值,然后延Gustedt的评论也适用。
这意味着你的价值if
声明是在编译时已知的。
编译器只是认为if (30 - 2 > 20)
加上一个不需要施法),它并不需要在运行评估。