gpt4 book ai didi

c - 在 IAR IDE 中预期为 ")"

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:53 24 4
gpt4 key购买 nike

我收到错误 Error[Pe018]: expected a ")" at 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);
}
}
}

最佳答案

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

发生的事情是,当预处理器替换宏 cpuStateOff 时,它使用宏的整个主体,即 0;,这导致代码如下

if (CPU_state == 0; ) // Code after macro replacement

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

关于c - 在 IAR IDE 中预期为 ")",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37405932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com