gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:01:18 25 4
gpt4 key购买 nike

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

If( (value1 OR value2 OR value3) == sizeof(array) ) then...

看来我的方法不起作用:

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

提前谢谢您。

最佳答案

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

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

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)))) {...}

当您这样做时,如果您知道哪个条件最有可能为真,请将其放在表达式中的第一个,因为逻辑或会短路其他测试,因此您的代码会更快。

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

关于C:OR-比较多个变量以匹配某个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521162/

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