我得到了错误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);
}
}
}发布于 2016-05-24 06:33:07
预处理宏不是C语句,因此不需要像;这样的语句结束符。
发生的情况是,当预处理程序替换宏cpuStateOff时,它使用宏的整个主体,即0;,这将产生类似于
if (CPU_state == 0; ) // Code after macro replacement大多数编译器和环境在预处理后都有可停止的选项,如果您使用它,您可以准确地看到编译器“正确”将看到的代码。
https://stackoverflow.com/questions/37405932
复制相似问题