想不明白的问题,请大家帮忙看一下。
随便写着玩的程序。想定义个函数指针数组,根据需要调用不同的函数,vc6编译出错。粗体那行:FUNC2.C(23) : error C2120: 'void' illegal with all types#include "stdio.h"
#include "string.h"
int a[10]={1,2,3,4,5,6,7,8,9,10};
void * func1(int x)
{
if((x>0)&&(x<9))
return &a[x];
else
return NULL;
}
void * func2(int x)
{
if((x>0)&&(x<9))
return &a[9-x];
else
return NULL;
}
void (* signal(int sig,int num))(int)
{
void (* pfun[2])(int);
pfun[0]=func1;
pfun[1]=func2;
[bo]return (*pfun[sig-1])(num);[/bo]}
void main()
{
int a,fc;
int *p=NULL;
printf("please input a integer0~9:\n");
scanf("%d",&a);
if((a<9)&&(a>0))
{
printf("please input a function name:1 or 2\n");
scanf("%d",&fc);
if((fc==1)||(fc==2))
p=(int *)signal(fc,a);
else
printf("incorrect function!\n");
if(p!=NULL)
printf("%d",*p);
else
printf("incorrect value!");
}
else
printf("please input a integer 0~9!");
}