gpt4 book ai didi

c - [功能] 之前出现错误 : expected '=' , ',' 、 ';' 、 'asm' 或 '__attribute__'

转载 作者:行者123 更新时间:2023-11-30 16:59:20 25 4
gpt4 key购买 nike

我在使用 PIC32 编译器 v2.02 时遇到问题。

编译器定义 BOOL 类型如下:

typedef enum _BOOL { FALSE = 0, TRUE } BOOL;     // BOOL Type

我想返回函数中的枚举值之一,如下所示:

BOOL
MyFunction(void)
{
if( PortAvailable() )
{
return TRUE;
}
else
{
return FALSE;
}
}

当我编译代码时,我收到“MyFunction”之前的错误:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'MyFunction'

我正在将编译器从版本 1.05 升级到版本 2.02,在版本中我创建了自己的 BOOL typedef。在尝试使用 2.02 版本之前,代码运行得很好。 (是的,我已经从代码中删除了 BOOL 的 typedef)。

我发现非常奇怪的是,如果我像这样删除函数:

enum BOOL
MyFunction(void)
{
if( PortAvailable() )
{
return TRUE;
}
else
{
return FALSE;
}
}

编译器没有给我上面的错误。我是否正确使用了枚举的 BOOL 或者有人知道我缺少的步骤吗?

最佳答案

再次感谢您花时间帮助我解决这个问题。我能够确定,对于较新版本的 Microchip C32 编译器 v2.02,我需要声明:

#include <plib.h>

这是使用"new"BOOL typedef 的文件中的 Pic32 标准库。使用旧版本的编译器,它基本上让用户创建自己的 BOOL typedeff (我就是这么做的),但是一旦我从代码中删除了 typedeff,我就没有添加适当的 header 来声明枚举。

我的菜鸟错误,但我希望这个答案能够帮助遇到类似问题的其他人。

关于c - [功能] 之前出现错误 : expected '=' , ',' 、 ';' 、 'asm' 或 '__attribute__',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38209823/

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