【发布时间】:2013-09-12 13:45:17
【问题描述】:
我正在生成包含if else 表达式的字符串。我想知道我是否可以在运行时执行这个表达式?这是一个例子:
string s = "if(x > 10) {Fly = true;} else {Fly = False;}";
Execute (s);
甚至有可能做到这一点吗?
【问题讨论】:
我正在生成包含if else 表达式的字符串。我想知道我是否可以在运行时执行这个表达式?这是一个例子:
string s = "if(x > 10) {Fly = true;} else {Fly = False;}";
Execute (s);
甚至有可能做到这一点吗?
【问题讨论】:
可以使用 TCC (http://bellard.org/tcc/)。它允许在运行时本地编译和运行代码。另一种方法是使用解释器,那里有很多解释器(LUA、Python 等,参见列表wiki)。
【讨论】:
一个人不会简单地解释 C/C++ 代码... AFAIK 你就是不能。
(除非您编译另一个二进制文件并从 cmd 行运行它...)
注意:你可以写
fly = (x > 10);
而不是
if(x > 10){
fly = true;
}else{
fly = false;
}
【讨论】:
没有。 C++ 是一种编译语言,没有 eval 函数等。您可能希望在程序中包含脚本引擎,例如 Lua
【讨论】: