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...