error: parameter name omitted
翻译:错误:参数名被忽略了
编写将链表数据写入文件的函数时,我定义了如下函数:
//StuPtr是我定义的一个结构指针类型,在本文中未涉及
void Record(StuPtr S,const char *);//录入文件
void Record(StuPtr S,const char *){
}
编译时报错是因为我定义的函数Record是接受常量指针的,但我在书写函数实现时却没有写形参名,所以正确的定义为:
void Record(StuPtr S,const char *);//录入文件
//或void Record(StuPtr S,const char *p);
void Record(StuPtr S,const char *p){
}
如果将写了形参名的位置调反:
void Record(StuPtr S,const char *p);//录入文件
void Record(StuPtr S,const char *){
}
一样会出现编译出错。
在c中,书写有参数的函数实现是必须要写形参名的,而函数定义中的形参名则可不写,但是形参类型必须写。