1.c函數封裝成庫,代碼如下:
<code>#include #include #include #include //2 args static int add(lua_State* L) { double a = luaL_checknumber(L,1); double b = luaL_checknumber(L,2); lua_pushnumber(L,a+b); return 1; //1個返回值 } static const luaL_reg mylibs[] = { {"add",add}, {NULL,NULL} }; //1. 其函數名必須為luaopen_xxx,其中xxx表示library名稱。Lua代碼require "xxx"需要與之對應。 //2. 在luaL_register的調用中,其第一個字符串參數為模塊名"xxx",第二個參數為待註冊函數的數組。 int luaopen_myaddlib(lua_State* L) { const char* libName = "myaddlib"; luaL_register(L,libName,mylibs); return 1; }/<code>
2.在 lua中調用,代碼如下:
<code>require "myaddlib" print(myaddlib.add(1,2))/<code>