我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: c语言怎样通过字符串数组(内容为函数名)调用函数 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

devin



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 272
威望: 0
浮云: 493
在线等级:
注册时间: 2010-02-08
最后登陆: 2016-04-28

5come5帮你背单词 [ ohm /əum/ n. 欧姆 ]


c语言怎样通过字符串数组(内容为函数名)调用函数

熟悉c的帮忙看下,实现如下功能:

void goto_test(){
    printf("this is go to test\n");
}

char a[] = "goto_test";

怎样通过类似java反射机制来通过读取a的内容来执行函数?
execute_by_name(a);  // ??



顶端 Posted: 2010-05-18 16:39 | [楼 主]
devin



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 272
威望: 0
浮云: 493
在线等级:
注册时间: 2010-02-08
最后登陆: 2016-04-28

5come5帮你背单词 [ perimeter /pə'rimitə/ n. 周边,周长 ]


反射是代码在运行时动态装配,就如这个帖子我想实现的功能,详细可以看这个帖子
http://blog.csdn.net/wmh4242424cs/archive/2007/09/23/1796823.aspx

开发平台是mtk,不是linux,貌似mtk的平台不支持。

请问sparkhunter用指针怎么实现呢
宏试了一下,下面这样直接用字符倒是可以
#define INVOKE_BY_NAME(str) str##()
void goto_test(){
    printf("this is go to test\n");
}

void main(){
    char a[] = "goto_test";
    INVOKE_BY_NAME(goto_test); // 直接用字符
    getchar();
}

但是下面这样就不行,把a直接当成一个字符了
#define INVOKE_BY_NAME(str) str##()
void goto_test(){
    printf("this is go to test\n");
}

void main(){
    char a[] = "goto_test";
    INVOKE_BY_NAME(a); // 用字符数组
    getchar();
}
不知道有没有好的办法解决


[ 此帖被devin在2010-05-19 09:40重新编辑 ]
顶端 Posted: 2010-05-19 09:31 | [1 楼]
devin



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 272
威望: 0
浮云: 493
在线等级:
注册时间: 2010-02-08
最后登陆: 2016-04-28

5come5帮你背单词 [ bottle /'botl/ n. 瓶子,(流体)容器 ]


谢谢各位,先暂时写死了,这个就结帖了
顶端 Posted: 2010-05-28 09:18 | [2 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.013384(s) query 6, Time now is:04-29 19:32, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号