我現在在學習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
@ tpg2114:這正是我所說的。什麼時候應該考慮在C++中嵌入一種語言,而不是用C++編寫核心,並在python/lua中使用它?也許你可以給我一些優點/缺點。 –