小编bas*_*els的帖子

我可以把这个要求变成一个宏吗?

我有带有递减软件计数器的 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)

c macros 8051 keil

0
推荐指数
1
解决办法
123
查看次数

标签 统计

8051 ×1

c ×1

keil ×1

macros ×1