gpt4 book ai didi

数据比较的C++警告

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:20 29 4
gpt4 key购买 nike

我的程序中有一个 WORD 变量。

WORD hour;

但是当我比较它的时候

if(hour>=0 && hour<=18)
{
hour+=6;
}

它会产生警告[警告] 由于数据类型的范围有限,比较始终为真

我正在使用 Dev-C++ 作为 IDE。

最佳答案

if(hour>=0 && hour<=18)

我认为警告是针对 hour >=0 的比较,它始终适用于 hourWORD 类型,它是一个 typedef unsigned short(通常)这意味着 hour 总是大于或等于 0:

 typedef unsigned short WORD;

在 MSVC++ 上,它是 WORD 的定义方式,请检查您的编译器是否为 unsigned。如果它未签名1,那么对于所有可能hour >=0 显然是true > 小时的值。在这种情况下,您只需要这样写:

if(hour<=18) //(hour >= 0) is implied by its type
{
hour+=6;
}

1。请注意,是 unsigned int 还是 unsigned short 并不重要。只要它是unsignedhour >=0 将对 hour 的所有可能值都为真。

关于数据比较的C++警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150642/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com