error expected declaration specifiers or ‘...’ before ‘SElemType’

CODEBLOCKS C语言下 出现这个错误时什么意思
int Push(SqStack *s,SElemtype e)
{
if(S.top-S.base>=S.stacksize) // 栈满,追加存储空间
{
S.base=(SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*(S.top)++=e;
return 1;
}

这个我也遇到了,有以下几种可能:1,有可能是漏写;}或者将)写成},或者是中英文混写,如将英文的)写成中文的)。2.机器码本身的问题,需要对数据类型进行typedef,如,使用int类型或者char类型,分别进行定义,typedefinDTYPE,typedefcharPCHAR,这一点没试验过,是看别人的3.没有加上需要的头文件。这一点我碰到了,很神奇。4.C和C++混编,如在C中使用classinline等,需要加上extern告诉编译器。因为C和C++的编译时找不同的内部代码,如果不告诉他,他会找一种,比如说全部找C的内部解释,那么C++部分的就会出错;5、明显的错误,比如c代码,结果写了个函数booltestIt;而bool默认没有定义,所以报错;改成int的就行了;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-07
在C语言中,没有函数重载一说,函数名加参数应该相同。
出错信息抱怨的是你的函数参数定义的不对(多了或少了几项),
你去看看在之前有没有Push函数的声明,查查声明的是否和你给出的形式一样