gpt4 book ai didi

C++:将 uint32 设置为 int32(负值)

转载 作者:行者123 更新时间:2023-11-28 04:44:53 34 4
gpt4 key购买 nike

我正在考虑是否可以消除编译器警告。警告来自将 uint32 与 -1 进行比较。

现在只看一眼,这似乎是一件不明智的事情,因为 uint32 永远不应该为负,但我没有编写这段代码,也不熟悉 c++ 的做事方式,所以我问你。下面是一些示例代码来说明正在发生的事情。

  bool isMyAddressValid = false;
unsigned int myAddress(-1);
unsigned int translatedAddress;

if(isMyAddressValid)
{
translatedAddress = 500;
}
else
{
translatedAddress = -1;
}

myAddress = translatedAddress;

if(myAddress == -1)
{
std::cout << "ERROR OCCURED";
}
else
{
std::cout << "SUCCESS";
}`

那么这个代码有效吗?这是我没有正确理解的 Cism 吗?

最佳答案

unsigned 类型设置为 -1 是将其设置为最大可能值的惯用方式,无论类型中的位数是多少。

一个笨拙但也许更清晰的方法是写

translatedAddresss = std::numeric_limits<decltype(translatedAddresss)>::max();

关于C++:将 uint32 设置为 int32(负值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49453534/

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