我在 C 中有这样的代码:
if (count == 5 || count == 8 || count == 9 || count == 10)
{
<do something>
}
有没有可能把这个写得更短一些? 像这样的东西:
if (count ==5,8,9,10)
{
<do something>
}
最佳答案
在某些情况下,使用位图是有意义的。
例如,你的测试:
if (count == 5 || count == 8 || count == 9 || count == 10)
相当于:
if ((1<<count) & 0x720)
值 5、8、9 和 10 编码在值 0x720
的位中。
通常,如果您有有意义的值 5、8、9 和 10 的符号常量,并且 0x720
由按位“或”构造(|
) 这些常量——这将导致比问题中的简单 if
更冗长的代码。
在实践中,真实世界的代码应该尽量减少“魔数(Magic Number)”的使用。很难说出值 5、8、9 和 10 的含义。
可能您应该考虑使用不同的算法,但如果没有更多信息就无法判断。
关于多个 If 条件的 C 缩写形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854444/