内联 if (?:) 在 _delay_us() 中不起作用
当我尝试在 1-Wire 实现中使用 _delay_us(condition ? value_if_true : value_if_false) 时,延迟不起作用,并且我的设备没有得到任何答复,但当我替换时它工作正常它与:
if(condition) _delay_us(value_if_true);
else _delay_us(value_if_false);
当我在液晶显示器上显示内联 if 值时,它显示正确的值。
那么这两种表示法有什么区别呢? 如果在 _delay_us() 中工作,我该如何进行内联?
When I'm trying to use _delay_us(condition ? value_if_true : value_if_false)
in my 1-Wire implementation, delay doesn't work and i get no answer from my device, but it works fine when i replace it with:
if(condition) _delay_us(value_if_true);
else _delay_us(value_if_false);
When i displaying inline if value on lcd it shows the correct value.
So what's the difference between this two notations?
How can i make inline if work in _delay_us() ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
文档明确指出:
The documentation clearly says:
哎呀……完全是大错特错的想法,但把它们留在这里是为了提醒我在发帖前思考。
你需要: 条件? _delay_us(value_if_true) : _delay_us(value_if_false)
基本相同
与 if 语句的语法
(条件)?(评估条件是否为真):(评估条件是否为假)
Oops ... utterly offbase thoughts, but leaving them here to remind me to think before posting.
you need: condition ? _delay_us(value_if_true) : _delay_us(value_if_false)
basically the same syntax as the if statement
think
(condition)?(evaluate if condition was true):(evaluate if condition was false)