我经常有以下形式的代码:
uint8_t bool_var = 0;
for (;;) {
...
if (!bool_var) {
do_something();
bool_var = 1;
}
...
}
是否存在一种更简洁,非宏的表达if条件和块的方式?
答案 0 :(得分:0)
您的代码在大多数情况下都具有可读性和简单性。
但是,出于非常特定的目的,您可能会遇到自己想要始终调用函数但有时没有效果的情况。然后也许可以在函数指针上使用一些技巧:
typedef void func_t (void);
...
func_t* do_stuff = do_something;
...
while(stuff) // this code can't be changed for whatever reason
{
do_stuff();
}
在这种情况下,您可以提出以下建议:
void nop (void) {}
...
do_stuff = nop;
现在您可以继续拨打do_stuff
,但什么都不会发生。