我的程序中有一个WORD变量。
WORD hour;
但是当我比较时
if(hour>=0 && hour<=18)
{
hour+=6;
}
它将产生警告
[警告]比较总是正确的,因为数据类型范围有限
我正在使用Dev-C ++作为IDE。
最佳答案
if(hour>=0 && hour<=18)
我认为警告是针对比较
hour >=0
的,对于hour
总是正确的,其类型为WORD
,这是unsigned short
的typedef(通常),这意味着hour
始终大于或等于: typedef unsigned short WORD;
在MSVC ++上,是通过WORD定义方式的,请检查编译器是否为
0
。如果它是unsigned
1,那么对于unsigned
的所有可能值,hour >=0
显然是true
。在这种情况下,您只需要编写以下代码:if(hour<=18) //(hour >= 0) is implied by its type
{
hour+=6;
}
1.请注意,
hour
还是unsigned int
都没有关系。只要它是unsigned short
,对于unsigned
的所有可能值,hour >=0
将为true。关于c++ - C++数据比较警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11150642/