我有带有递减软件计数器的 C 程序。例如,如果我想每 2 秒闪烁一次 LED,我可以这样做:
if(!ledT) {
ledT = 200;
// code
// code
// code
}
Run Code Online (Sandbox Code Playgroud)
因为我总是对每个计数器进行完全相同的组合,所以我倾向于将其输入一行。
if(!ledT) { ledT = 200;
// code
// code
// code
}
Run Code Online (Sandbox Code Playgroud)
对于整个 if 行,我想改用宏。所以代码看起来像:
expired(ledT, 200) {
// code
// code
// code
}
Run Code Online (Sandbox Code Playgroud)
我在我的状态机代码中使用类似的东西作为入口状态。
if(runOnce) { runOnce = false;
// code
// code
// code
Run Code Online (Sandbox Code Playgroud)
所需的语法:
entryState {
// code
// code
// code
Run Code Online (Sandbox Code Playgroud)
.
#define entryState if(runOnce) { runOnce = false; // this ofcourse cannot work But something …Run Code Online (Sandbox Code Playgroud)