gpt4 book ai didi

在开关盒中类型转换成更大的类型

转载 作者:太空狗 更新时间:2023-10-29 15:52:01 25 4
gpt4 key购买 nike

在工作期间,我看到了以下代码片段,现在我想知道是否有理由将“case-values”强制转换为更大的数据类型。我想,它是用来提供以后有超过 256 个不同状态的可能性,但是,状态变量也必须更大。这是我正在谈论的代码:

#define STATE_1 (uint8_t)(0x00)
#define STATE_2 (uint8_t)(0x01)
...
#define STATE_n (uint8_t)(0x..)

void HandleState(uint8_t state)
{
switch(state)
{
case (uint16_t)STATE_1:
// handle state 1
break;

case (uint16_t)STATE_2:
// handle state 2
break;

...
case (uint16_t)STATE_n:
// handle state n
break;

default:
break;
}

}

还有其他原因吗?

最佳答案

Is there another reason for this?

没有。

要么是错误、木偶戏,要么是遗留问题(也许 state 和宏曾经是别的东西,但这个特定的代码从未改变过?)。

我个人投票支持布偶戏。有时您会遇到其他人编写的错误代码,而事实就是如此。

关于在开关盒中类型转换成更大的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31054609/

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