我正在生成包含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-function 或类似的东西。你可能想在你的程序中包含一个脚本引擎,比如Lua