多个 If 条件的 C 缩写形式

标签 c if-statement

我在 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/

相关文章:

c - 无法获得简单的 C 代码完成以在多个 IDE 上的 Linux 中工作

java - 检查用户是否至少输入了一个输入的最佳/最有效方法

c - 我不知道什么可能被窃听

c - 如何在基于 Linux 的嵌入式设备上造成内存碎片?

if-statement - 为什么我们不在if/else的末尾加一个分号(;)呢?

actionscript-3 - AS3 : if-function doesn't listen to a boolean in another class

java - 调用Java方法

c# - if-then 语句逻辑有问题

c - C 的 GCD 函数

c - 如何将数组从 C 转换为 mips