C语言 程序编译问题(函数,结构,参数传递)
有这样一段代码..ch为char类型,showmenu,showlist,assign,deleteem均为函数,airpln为结构,本例中将结构作为参数传递,在编译的时候有错误:
[Error] D:\My Documents\C-Free\Projects\14.8.c:65: error: incompatible type for argument 1 of `shownumemp'
[Error] D:\My Documents\C-Free\Projects\14.8.c:67: error: case label not within a switch statement
[Error] D:\My Documents\C-Free\Projects\14.8.c:68: error: incompatible type for argument 1 of `showlist'
[Error] D:\My Documents\C-Free\Projects\14.8.c:70: error: case label not within a switch statement
[Error] D:\My Documents\C-Free\Projects\14.8.c:71: error: incompatible type for argument 1 of `assign'
[Error] D:\My Documents\C-Free\Projects\14.8.c:71: error: incompatible type for argument 2 of `assign'
[Error] D:\My Documents\C-Free\Projects\14.8.c:73: error: case label not within a switch statement
while((ch=getchar())!='e')
{
switch(ch)
case 'a':
shownumemp(airpln);
break;
case 'b':
showlist(airpln);
break;
case 'c':
assign(airpln,fp);
break;
case 'd':
deleteem(airpln);
break;
default :
printf("illicit input\n");
下面为各函数声明:
void showmenu(void);
void shownumemp(struct flight);
void showlist(struct flight);
void assign(struct flight,FILE);
void deleteem(struct flight);
请问为什么会有这样的错误啊....我看了半天也不知道怎么回事
PS:请问结构数组可以作为函数的参数传递吗??
感谢各位。。。好人一生平安
[解决办法]
结构体变量,结构体指针都可以作为函数的参数
[解决办法]
1) switch(x)
{
case xx:
xxx;
break;
default:
break;
}
2)当把结构体作为函数参数时,应该传递结构体实例的指针。当然也可以传整个结构体,不建议这样做,因为效率很低。
[解决办法]