在工作期间,我看到了以下代码片段,现在我想知道,如果有理由将"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;
}
}
Run Code Online (Sandbox Code Playgroud)
还有其他原因吗?
还有其他原因吗?
没有.
这可能是一个错误,muppetry或遗留(可能state和宏曾经是其他东西,但这个特殊的代码永远不会改变?).
我个人投票支持muppetry.有时你会遇到其他人写的代码不好的代码,这就是它的方式.
| 归档时间: |
|
| 查看次数: |
1636 次 |
| 最近记录: |