用函数指针,取代switch,实现跳转表.遇到错误(代码)
我想用函数指针来,代替switch.编译可以通过,不过,运行的时候返回的值是错误的.我不知道问题出在那里.不好调试,请老师帮助看看.在linux下用gcc编译提示的是段错误.而c++builder里面返回的值是错误的.
代码如下:
#include <stdio.h>
#include <stdlib.h>
//----------------------------------------------
int Add(const int n1,const int n2)
{
int nt = n1 + n2;
return nt;
}
//----------------------------------------------
int Sub(const int n1,const int n2)
{
int nt = n1 - n2;
return nt;
}
//----------------------------------------------
int main(void)
{
extern int Add(const int n1,const int n2);
extern int Sub(const int n1,const int n2);
int n,n3;
int n1 = 10;
int n2 = 20;
scanf("%d",n3);
int (*lpFunc [])(const int n1,int n2) = {Add,Sub};
n = lpFunc[n3](n1,n2);
printf("%d\n",n);
}