lua調用c函數

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>