我正在生成以下格式的Ifse表达式
If(X > 10) Then Fly = True Else Fly = False
If(X > 9) Then Fly = True Else Fly = False
If(X > 8) Then Fly = True Else Fly = False
If(X > 7) Then Fly = True Else Fly = False
If(X > 6) Then Fly = True Else Fly = False
我想知道我可以在运行时执行此表达式吗?我不知道我的问题是否清楚。
我将添加一个示例
String = "";
for(int i = 0; i < n; i++)
{
string ="if(x > 10){Fly = true;} else {Fly = False;}";
Execute (Expression HERE)!
}
甚至可以这样做吗?大声笑 谢谢。 哈尼。
答案 0 :(得分:4)
可以使用TCC(http://bellard.org/tcc/)。它允许在运行时本地编译和运行代码。另一种方法是使用解释器,那里有很多(LUA,Python等,见列表wiki)。
答案 1 :(得分:4)
一个人不仅仅是解释C / C ++代码... AFAIK你不能 (除非你编译另一个二进制文件并从cmd行运行它,否则......)
注意:您可以写
fly = (x > 10);
而不是
if(x > 10){
fly = true;
}else{
fly = false;
}
答案 2 :(得分:3)
没有。 C ++是一种编译语言,没有eval函数或类似函数。您可能希望在程序中包含脚本引擎,例如Lua
答案 3 :(得分:3)
除非您申请Greenspun's 10th rule。
答案 4 :(得分:0)
这是可能的,就像c ++编写的js一样。应创建变量池(字符串到variabe的链接),与函数池(字符串到函数的链接)相同。 regex也用于链接。