问题描述
|
该代码用于在C中实现通用堆栈功能。
Code for stack.h
-------------
typedef struct{
void *elements;
int elementSize;
int logofElementsLength;
int allocatedLength;
}stack;
bool stackEmpty(const stack *s);
Client.c中实现的代码
bool stackEmpty(const stack *s)
{return (s->logLength==0);
}
错误
error: expected \'=\',\',\';\',\'asm\' or \'__attribute__\' before \'stackEmpty\'
注释
代码会以其他方式编译,而我只会在此行得到一个错误。显然,错误必须源自此行代码。我在用
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上运行。我已经在Client.c
中导入了stack.h
,并且所有其他代码都可以编译并正常运行。任何帮助,将不胜感激。
解决方法
好吧,与C ++不同,
bool
在C语言中不是有效类型(当然,除非使用stdbool.h
)。我已经看到ѭ6在C中以这种方式使用:
typedef enum { false,true } bool;