我经常有以下形式的代码:
uint8_t bool_var = 0;
for (;;) {
...
if (!bool_var) {
do_something();
bool_var = 1;
}
...
}
是否有更简洁、非宏的方式来表达 if 条件和 block ?
最佳答案
您的代码在大多数情况下都尽可能地具有可读性和简单性。
然而,对于非常具体的目的,您可能会发现自己处于这样一种情况:您希望始终调用一个函数,但有时却没有效果。那么使用函数指针的一些技巧可能是有意义的:
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
但什么也不会发生。
关于c - 一种仅在 C 中执行一次代码的更简洁的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55614911/