gpt4 book ai didi

c - C 代码中的飞思卡尔微 Controller 错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:32 25 4
gpt4 key购买 nike

我目前正在学习如何将 HC08 系列飞思卡尔微 Controller 与 codewarrior IDE(6.3 版)一起使用。我写了一个简单的程序,但编译失败。

#include <hidef.h>
#include "derivative.h"

void main(void) {
EnableInterrupts;

/* include your code here */
DDRA |= 0x03;
PTA |= 0x01;
unsigned int counter; << error here "Error : C2801: '}' missing
counter = 50000;
while(counter--);
PTA ^= 0x03;

for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
}

}

知道它可能有什么问题吗?所有括号匹配。也许这是特定于微 Controller 的东西?

最佳答案

我用过那个 IDE 和编译器,但不记得它是否支持 1990 或 1999 C 标准。

在 C99 之前, block 中可执行代码之后的变量定义是不合法的。由于这正是您收到错误消息的地方,因此编译器似乎不支持 C99。尝试将变量定义移动到 main 的开头。

void main(void) {    
unsigned int counter;
EnableInterrupts;

// the rest of the code
}

您还可以引入一个新 block 。这并不常见并且对您的代码示例没有特别帮助。值得指出的是,它适用于循环(或 if 语句)的方括号主体,有时对于提供此类 block 的局部变量很有用。

void main(void) {
EnableInterrupts;

DDRA |= 0x03;
PTA |= 0x01;

{ // start of nested scope
unsigned int counter;
counter = 50000;
while(counter--);
} // "counter" ceases to exist here

PTA ^= 0x03;

for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
}

}

关于c - C 代码中的飞思卡尔微 Controller 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458487/

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