C:OR-比较几个变量以匹配某个值

  • 本文关键字:变量 几个 OR- 比较 c compare
  • 更新时间 :
  • 英文 :


这个伪代码的正确C表达式是什么?

如果( (值 1 或值 2 或值 3) == 大小(数组) ) 那么...

似乎,我的方法无法正常工作:

if( (LED->index_red || LED->index_green || LED->index_blue) == sizeof(pwm_table)/sizeof(uint8_t) )

提前谢谢你。

它不是那样工作的(好吧,它会编译,但会将 0 或 1 与您的值进行比较,这不是您想要的)。

您必须执行 3 个 OR 相等性测试:

if ((LED->index_red == (sizeof(pwm_table)/sizeof(uint8_t))) || 
    (LED->index_green == (sizeof(pwm_table)/sizeof(uint8_t))) || 
    (LED->index_blue == (sizeof(pwm_table)/sizeof(uint8_t)))) {...}

当你这样做的时候,如果你知道哪个条件最有可能为真,那就把它放在你的表达式中,因为逻辑OR会缩短其他测试,所以你的代码会更快。

顺便说一句,不用担心除法成本,它是在编译时完成的。

相关内容

  • 没有找到相关文章

最新更新