【发布时间】:2019-09-01 01:14:14
【问题描述】:
我经常有以下形式的代码:
uint8_t bool_var = 0;
for (;;) {
...
if (!bool_var) {
do_something();
bool_var = 1;
}
...
}
是否有更简洁、非宏的方式来表达 if 条件和块?
【问题讨论】:
-
你必须扩展上下文,因为代码通常只会运行一次,除非你做一些事情让它再次运行,比如把它放在一个循环中。
-
对我来说看起来非常可读和简洁。在 C++ 中,你可以用函子做一些技巧,但在纯 C 中,任何更短的东西都会使它变得神秘 IMO。
-
@DavideVisentin - 所以不要再次进入这个块进行 255 次迭代?
-
@DavideVisentin 我一直在考虑这一点,但最终它会结束,尤其是在
uin8_ts 的 ATMEGA 上。 -
如果您排除宏来隐藏代码,我认为这是最好的方法。如果您有
for(int i=0; i<...; ++i),您可以删除布尔变量并将其替换为if (i==0),但除此之外......
标签: c boolean conditional