在Lua中與C語言進行交互通常需要使用Lua的C API。以下是一個簡單的示例:
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
int add(lua_State* L) {
double a = luaL_checknumber(L, 1);
double b = luaL_checknumber(L, 2);
lua_pushnumber(L, a + b);
return 1; // 返回值的數量
}
-- 加載C庫
local ffi = require("ffi")
ffi.cdef[[
double add(double a, double b);
]]
local lib = ffi.load("your_library_path")
-- 調用add函數
local result = lib.add(1, 2)
print(result) -- 輸出3
通過以上示例,可以看到在Lua中通過ffi模塊加載C庫,并調用C語言中定義的函數,實現了Lua與C語言的交互。