社区
C语言
帖子详情
通过字符串调用函数
leiguang1108
2007-06-20 03:25:40
假设“sale”字符串对应sale()函数
希望通过字符串传递来调用字符串所对应的函数
请问该如何实现?
有人告诉小妹用函数指针,可不知道具体该如何
所用语言为C
...全文
404
15
打赏
收藏
通过字符串调用函数
假设“sale”字符串对应sale()函数 希望通过字符串传递来调用字符串所对应的函数 请问该如何实现? 有人告诉小妹用函数指针,可不知道具体该如何 所用语言为C
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cceczjxy
2007-06-21
打赏
举报
回复
下面的方法和ls的基本一样,这需要你在编译钱知道你都有那些函数需要这样调用,切知道参数类型
struct fun{
void (name)();
char name_str[32];
};
int main()
{
struct fun fun_table[30];
char *p="fun2"
fun_table[0].name=fun1;
strcpy(fun_table[0].name_str,"fun1");
fun_table[1].name=fun2;
strcpy(fun_table[1].name_str,"fun2");
fun_table[2].name=fun3;
strcpy(fun_table[2].name_str,"fun3");
fun_table[3].name=fun4;
strcpy(fun_table[4].name_str,"fun4");
.
.
.
for(i=0;i<30;i++)
{
if(strcmp(fun_table[i].name_str,ptr)==0)
{
fun_table[i].name();
break;
}
}
}
robot_2
2007-06-21
打赏
举报
回复
返回值 (pfunc*)(参数列表) //定义函数指针
if (0==strcmp("sale",函数名))
pfunc=sale; //将函数指向目标函数
scorpiotears
2007-06-20
打赏
举报
回复
用C啊?template当我没说过
scorpiotears
2007-06-20
打赏
举报
回复
可以用宏啊,虽然办法老旧一点
比如说
#define macro(a,b) 这里呢可以使用#,##这样的符号
另外对于函数指针类型匹配的问题,用个template转下就好
leiguang1108
2007-06-20
打赏
举报
回复
那如果有100个函数需要调用
switch(index)
{
case0:
...
...
...
case100:
}
Arthur_
2007-06-20
打赏
举报
回复
假设“sale”字符串对应sale()函数
希望通过字符串传递来调用字符串所对应的函数
请问该如何实现?
有人告诉小妹用函数指针,可不知道具体该如何
所用语言为C
==================================
int index;
int ret=-1;
char func[128]="sale";
char *functbl[128]={"sale","unsale"};
for(index=0;index<2;index++)
{
ret=strcmp(func,functbl[index]);
if(ret==0)
break;
}
switch(index)
{
case 0:
sale();
case 1:
unsale();
default:
}
www_adintr_com
2007-06-20
打赏
举报
回复
这可以通过转换来解决,所有的函数都是一个地址。
-------------------------------------------------
转换有什么用? 你把它放到表里面去了之后还要拿出来用的啊,用的时候你怎么传参数? 再把它转回来? 你怎么知道往会转成什么原型的指针来用? 除非你保存到表中的除了函数指针外还要保存一个原型有关的信息,而这是相当麻烦的。
leiguang1108
2007-06-20
打赏
举报
回复
有没有人能说具体的实现方法啊
最好有代码做讲解
分数不够可以提啊
lbaby
2007-06-20
打赏
举报
回复
回复人:adlay(www.adintr.com)(无可奈何天) ( 四级(中级)) 信誉:100 2007-06-20 15:35:50 得分:0
?
做成表的话就限制了所有放到表中的函数必须有相同的参数
---------------------------------------------
这可以通过转换来解决,所有的函数都是一个地址。
leiguang1108
2007-06-20
打赏
举报
回复
wenjia1108@hotmail.com.cn
leiguang1108
2007-06-20
打赏
举报
回复
各位大虾
用函数指针该如何实现呢?
digiworm
2007-06-20
打赏
举报
回复
函数指针而已,和参数没什么关系吧
www_adintr_com
2007-06-20
打赏
举报
回复
做成表的话就限制了所有放到表中的函数必须有相同的参数
珍惜生命远离CPP
2007-06-20
打赏
举报
回复
做一个字符串表,和函数对应表,然后对应调用
www_adintr_com
2007-06-20
打赏
举报
回复
C 语言不是动态语言,本身没有这种功能。
你用函数指针也需要手动把一个一个的字符串和函数地址关联起来。
JavaScript 实现通过
字符串
调用函数
、方法
JavaScript 实现通过
字符串
调用函数
、方法
python——通过
字符串
调用函数
或变量
locals是python的内置函数,他可以以字典的方式去访问局部和全局变量。 python里面用名字空间记录着变量,就像javascript的window一样,他记录着各种全局变量。 每个模块,每个函数都有自己的名字空间,记录着变量...
Python通过
字符串
调用函数
有时候我们想通过
字符串
调用已经定义好的函数,一开始的思路及实现方式如下:def chinese(text): print('jieba分词')def english(text): print('nltk处理对文本进行分词')def textprocess(file, language): text ...
python通过
字符串
来
调用函数
有时候我们想要通过
字符串
来直接
调用函数
,方便通过输入的参数来直接控制调用的函数 常规操作 def function1(): print("function1") def function2(): print("function2") def function3(): print("function3")...
js根据
字符串
调用函数
(三种实现方式)
js根据
字符串
调用函数
依赖 underscore.js 代码 //模拟js 通过
字符串
执行函数 _.mixin({ /**基于
字符串
获取 函数名称和参数对象 //不准持有无效的引号 * 示例 test(1,5,6,7); * @params str 字符...
C语言
69,373
社区成员
243,079
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章