反射是代码在运行时动态装配,就如这个帖子我想实现的功能,详细可以看这个帖子
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重新编辑 ]