c 中的定义和逻辑,微处理器
defines and logic in c, microprocessors
这段代码有什么问题?我是 c 的新手,但我无法通过在 if 语句中使用宏来理解我做错了什么。它给了我一个意外的令牌错误。
#define PBrun PORTBbits.RB10
#define pressed 0;
#define released 1;
int debouncedone = true;
void debouncetimerdone(){
debouncedone = true;
if (PBrun == pressed){
debouncedone = false;
}
}
当我用它们的含义替换宏时,代码工作正常。
删除宏定义末尾的分号:
即
变化自
#define pressed 0;
#define released 1;
到
#define pressed 0
#define released 1
有了分号,if
语句在宏替换后看起来像这样:
if (PBrun == 0;){
debouncedone = false;
}
这显然会产生语法错误。
这段代码有什么问题?我是 c 的新手,但我无法通过在 if 语句中使用宏来理解我做错了什么。它给了我一个意外的令牌错误。
#define PBrun PORTBbits.RB10
#define pressed 0;
#define released 1;
int debouncedone = true;
void debouncetimerdone(){
debouncedone = true;
if (PBrun == pressed){
debouncedone = false;
}
}
当我用它们的含义替换宏时,代码工作正常。
删除宏定义末尾的分号:
即 变化自
#define pressed 0;
#define released 1;
到
#define pressed 0
#define released 1
有了分号,if
语句在宏替换后看起来像这样:
if (PBrun == 0;){
debouncedone = false;
}
这显然会产生语法错误。