我在Error[Pe018]: expected a ")"
收到了错误CPU_state == cpuStateOff
当我将cpuStateOff
更改为0
时,确定无误。我不知道为什么。
在我的PERIPHERAL_APP.h
:
#ifndef __PERIPHERAL_APP_H
#define __PERIPHERAL_APP_H
// CPU state
#define CPU_STATE_OFF 0;
#define CPU_STATE_ON 1;
#endif
在我的main.c
:
#include "PERIPHERAL_APP.h"
void main( void )
{
initMSP430();
_EINT();
for (;;)
{
if (cpuState == CPU_STATE_OFF ) // The error is hear
{
__bis_SR_register(LPM3_bits);
}
else
{
__bis_SR_register(LPM0_bits);
}
}
}
答案 0 :(得分:4)
预处理器宏不是C语句,因此不需要像;
这样的语句终止符。
当预处理器替换宏cpuStateOff
时,会使用宏的整个主体,即0;
,这会产生类似
if (CPU_state == 0; ) // Code after macro replacement
大多数编译器和环境都有在预处理后停止的选项,如果你使用它,你可以准确地看到编译器“正确”看到的代码。