c - 一种仅在 C 中执行一次代码的更简洁的方法?

标签 c boolean conditional

我经常有以下形式的代码:

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/

相关文章:

c - 是否有任何函数可以从标准输入中获取无限输入字符串

python - 具有多索引的 pandas 数据框上的 boolean 掩码

c# - 将 8 个 boolean 值转换为 1 个字节的正确方法

php - 将变量值限制为某些预定义值

如果满足某些条件,Excel 用数字计数单元格

c - 在 C 编程中退出 while(1) 循环

c - 函数调用和汇编

c - 隐藏 Execve 的终端输出

C# bool 语句为看似未连接的 double.parse(string) 抛出奇怪的异常

php - && 之后的条件是否总是被评估