期待")"在IAR IDE中

时间:2016-05-24 06:29:05

标签: c msp430 iar

我在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); 
        } 
    } 
}

1 个答案:

答案 0 :(得分:4)

预处理器宏不是C语句,因此不需要像;这样的语句终止符。

当预处理器替换宏cpuStateOff时,会使用宏的整个主体,即0;,这会产生类似

的代码。
if (CPU_state == 0; ) // Code after macro replacement

大多数编译器和环境都有在预处理后停止的选项,如果你使用它,你可以准确地看到编译器“正确”看到的代码。