求助:不能将参数 1 从“int *”转换为“int (__cdecl *)(void)
#include "stdafx.h"#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#include <assert.h>
#include <stdlib.h>
int enter(void),delete1(void),review(void),quit(void),menu(void);
int process(int ( *fun)(void));
int *options[4]=
{
(int *)enter,
(int *)delete1,
(int *)review,
(int *)quit
};
int main(void)
{
int i;
i=menu();
process(options[i]);//options[i])与函数名的值相同,可编译是却告知“不能将参数 1 从“int *”转换为“int (__cdecl *)(void)”
// printf("%p\n",enter);
return 0;
}
int menu(void)
{
char ch;
do
{
printf("1.enter\n");
printf("2.delete\n");
printf("3.review\n");
printf("4.quit\n");
printf("select a number:");
ch=getche();
printf("\n");
} while (!strchr("1234",ch));
printf("%x\n",ch);
return ch-49;//49相当于16进制的31h.返回0,代表options[0]
}
int process(int ( *fun)(void))
{
(*fun)();
return 0;
}
int enter()
{
return 1;
}
int delete1()
{
return 1;
}
int review()
{
return 1;
}
int quit()
{
return 1;
}
请高手帮忙,我用的是VS2005编译器。