错误:在'stackEmpty'之前预期'=',',',';','asm'或'__attribute__'

sre*_*sad 1 c compiler-errors

此代码用于在C中实现通用堆栈功能.

Code for stack.h
-------------

    typedef struct{
    void *elements;
    int elementSize;
    int logofElementsLength;
    int allocatedLength;

}stack;

bool stackEmpty(const stack *s);
Run Code Online (Sandbox Code Playgroud)

Client.c中的实现代码

bool stackEmpty(const stack *s)
{return (s->logLength==0);
}
Run Code Online (Sandbox Code Playgroud)

错误

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'stackEmpty'
Run Code Online (Sandbox Code Playgroud)

评论

代码编译否则我只在这一行得到错误.显然,错误必须来自这行代码.我在用

gcc -O0 -g3 -Wall -arch i386 -c -fmessage-length=0 -MMD -MP -MF"Client.d" -MT"Client.d" -o"Client.o" "../Client.c"

编译.

我在MAC Snow Leopard OS上运行.我已导入stack.hClient.c和所有其他代码编译并运行正常.任何帮助,将不胜感激.

cni*_*tar 11

好吧,与C++不同,bool它不是 C中的有效类型(stdbool.h当然除非使用).我见过bool在C中使用过这种方式:

typedef enum { false, true } bool;
Run Code Online (Sandbox Code Playgroud)

  • @WTP:类型名称应为小写. (3认同)
  • ...或者你的类型被称为`FILE`(或者在C99中为`_Bool`或`_Complex`).Tsk,那些讨厌的标准委员会! (2认同)