通过函数名字符串调用相应的函数
- 循环生成其函数名对应的字符串(spintf函数)
- 利用函数指针得到相应字符串对应的函数
#include <iostream>
#include <string.h>
using namespace std;
typedef int (*funcP)(int k); //定义类型,funcP即为指向函数的指针
//指向的函数类型与f_1(),f_2(),f_3()的函数类型相同
int f_1(int a) {return a;}
int f_2(int a) {return 2*a;}
int f_3(int a) {return 3*a;}
//输入函数名的字符串,经过字符串比较函数,返回对应函数的引用
funcP getFuncName(char* funcname)
{
if(strcmp(funcname,"f_1")==0)
{
return &f_1;
}
else if(strcmp(funcname,"f_2")==0){
return &f_2;
}
else if(strcmp(funcname,"f_3")==0){
return &f_3;
}
return NULL;
}
int main(int argc, char **argv)
{
int k = 1,result;
char f_name[20];
char f[5] = "f_";
for(int i = 1;i<=3;i++)
{
//通过spintf函数将每个函数名拼接起来
sprint