【发布时间】:2012-10-25 21:05:08
【问题描述】:
我现在正在学习 C++,并且听说过很多关于嵌入式脚本语言的知识。我想象的完全不同。
我想我会用 C++ 编写我所有的性能要求很高的函数,并用 Lua 或 Python 等脚本语言调用它们。
但似乎情况正好相反。 -> 用 Lua/Python 编写函数并用 C 代码调用它们。
在 C++ 中嵌入一种语言而不是在 C++ 中编写 API 并用另一种语言调用这些函数有什么优势?
例子:
// function in c++
int expensiveFunction(){
return 1;
}
然后在 Python 中我会调用这个函数,我将获得 C++ 的性能,但由于 Python 的运行时解释器,我可以在运行时进行更改。
【问题讨论】:
-
另一个原因是您可以让用户编写自己的脚本来扩展程序。这就是 Unix 所做的。
-
你在说什么?在视频游戏中,引擎在 C++ 中“关闭”,但通常通过脚本语言控制事物以允许修改。对于服务器之类的东西,或者您希望保持核心关闭但允许用户创建扩展的任何软件也是如此。但反过来说,在科学软件中,Python 之类的东西写起来很简单但速度很慢,所以核心函数应该在 C/Fortran 中。
-
@tpg2114:这正是我所说的。我什么时候应该考虑在 c++ 中嵌入一种语言,而不是在 c++ 中编写核心并在 python/lua 中使用它?也许你可以给我一些优点/缺点。