7

我正在生成包含if else表达式的字符串。我想知道我是否可以在运行时执行这个表达式?这是一个例子:

string s = "if(x > 10) {Fly = true;} else {Fly = False;}";
Execute (s); 

甚至有可能做到这一点吗?

4

3 回答 3

4

可以使用 TCC ( http://bellard.org/tcc/ )。它允许在运行时本地编译和运行代码。另一种方法是使用解释器,那里有很多(LUA、Python 等,请参阅列表wiki)。

于 2013-09-12T13:50:50.687 回答
4

一个人不只是简单地解释 C/C++ 代码... AFAIK 你就是不能。
(除非你编译另一个二进制文件并从 cmd 行运行它可能......)

注意:你可以写

fly = (x > 10);

代替

if(x > 10){
    fly = true;
}else{
    fly = false;
}
于 2013-09-12T13:57:42.303 回答
3

不,C++ 是一种编译语言,没有 eval-function 或类似的东西。你可能想在你的程序中包含一个脚本引擎,比如Lua

于 2013-09-12T13:47:29.720 回答