错误:在[函数]之前预期'=',',',';','asm'或'__attribute __'

时间:2016-07-05 18:03:15

标签: c pic mplab

我遇到了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类型定义。在尝试使用2.02版之前,代码运行正常。 (是的,我已经从代码中删除了我的typedef BOOL。)

我觉得非常奇怪的是,如果我像这样去处理这个函数:

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

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

1 个答案:

答案 0 :(得分:0)

再次感谢您抽出宝贵时间帮我解决这个问题。我能够确定使用较新版本的Microchip C32编译器v2.02,我需要声明:

#include <plib.h>

这是使用“new”BOOL typdef的文件中的Pic32标准库。使用旧版本的编译器,它基本上让用户创建自己的BOOL类型部署(我做过)但是一旦我从代码中删除了我的typedeff,我没有添加appropriet头来声明枚举。

我认为是新手的错误,但我希望这个答案可以帮助其他遇到类似问题的人。