想实现这样的效果,eval("alert('haha')")执行结果为弹出对话框显示'haha'?

这在C语言中如何实现?举例吧,下面的cre_fun函数该怎么实现?其中"return 100;"是动态创建的函数中的语句
void cre_fun(void* fn,char* fn_str){
}
void main(){
int fn();
cre_fun(fn,"return 100;");
printf("%d\n",fn());
}
void cre_fun(void* fn,char* fn_str){}中fn指向动态创建的函数,fn_str为动态创建的函数中的语句

哔哔one
浏览 118回答 2
2回答

倚天杖

C语言可以通过宏,在你需要的位置宏展开出一个新的函数。例如:#define XXX(funcname) \int funcname (int arg1, int arg2) \{ return arg1 + arg2; }但这也是编译期就决定好了的,也不能实现运行期动态创建。

不负相思意

不好意思,我对js不太熟悉,但是大概理解你的意思,有个问题,你觉得js是万能的吗?也就是说难道你在js里面就能用类似cre_fun(void* fn,char* fn_str)的语法来实现创建【任何】函数么?如果不是,那就说明有语法规则,给定相似的语法规则,c语言来做又有何难,大不了用词法分析之类。
打开App,查看更多内容
随时随地看视频慕课网APP