Lua與C 呼叫Lua函式(三)

2021-07-03 07:22:22 字數 633 閱讀 4863

lua允許在乙個文字中定義函式,並且可以通過c語言來呼叫這個函式。

先將帶呼叫的函式壓棧,並壓入函式的引數。然後是用lua_pcall進行實際呼叫。最後,將呼叫結果從戰中彈出。

lua函式:

function add(x, y)

return x + y

end

​/*--------- c language--------*/

double add(lua_state *l, double num1, double num2)

sum = lua_tonumber(l, -1);

lua_pop(l, 1);

return sum;

}

lua_state*l =lual_newstate();

int e = lual_loadfile(l, "/users/natsu/code/luatest/lua/test.lua");

if (e)

int res = add(l, 3, 1);

printf("res= %f", res);

lua與C(一) C呼叫lua

lua和c有兩種關係 一種是在lua中呼叫c的函式,c稱為庫 一種是c中呼叫lua,c就稱為應用程式 此時c中包含了lua的直譯器 c 部分 注意在c 中,通常要把lua的一些標頭檔案定義在extern c 中,因為他們是c語言實現的。1.作為應用程式呼叫lua char buffer print ...

lua呼叫c函式

最近在進入lua程式設計的狀態,一度令我困惑的是,lua提供的功能少的可憐,跟自備電池的python相比,可說是簡陋了。連table的列印,都需要自己實現,也因此有了一打的第三方方案。後來我想明白了,以lua和c如此緊密的關係,只需要建立lua的binding,那麼豐富而效能強大的c庫資源完全可以為...

lua呼叫c函式

lua可以呼叫c函式的能力將極大的提高lua的可擴充套件性和可用性。對於有些和作業系統相關的功能,或者是對效率要求較高的模組,我們完全可以通過c函式來實現,之後再通過lua呼叫指定的c函式。對於那些可被lua呼叫的c函式而言,其介面必須遵循lua要求的形式,即 typedef int lua cfu...