首页 > 解决方案 > 在永远循环或无效循环中执行一次(一次)?

问题描述

我想在任何程序语言的永远循环(无效循环)中创建一次或一次执行语法。

我发现解决方案是使新变量布尔“已执行”并在执行后设置为真。

没关系,但是如果我想执行一次其他语法怎么办?我应该再次将新变量设为布尔值吗?它不会有效。想象一下有很多语法,但我必须为每种语法创建新的布尔执行。

解决方案是我认为的功能

例如

void loop()
{
lcd.print("OK");
}

这将永远打印我希望有这样的功能

void loop()
{
once(lcd.print("OK"));
}

所以“once”是一个带有参数字符串的函数,它用于命令/语法。

一次(“命令”)

标签: c++cooparduino

解决方案


这是您可以做到的一种方法:

void loop()
{
    { // execute once. Can put this in a separate function also
        static bool executed = (lcd.print("OK"), true);
    }
}

你保证这个变量被初始化一次。

如果您想要once问题中的语法,您可以使用宏实现类似的功能:

#define ONCE(...) \
{\
 static bool executed = ([&]{__VA_ARGS__;}(), true); \
}


void loop()
{
    ONCE(lcd.print("OK"))
}

推荐阅读