Lua常用C Api介面

朱小勇發表於2024-05-22

Lua 5.4 是 Lua 語言的一個版本,它提供了許多 C API 函式,這些函式允許開發者在 C 語言中嵌入和擴充套件 Lua 的功能。以下是一些常用的 Lua 5.4 C API 函式,以及它們的簡單示例:

  1. lua_newstate - 建立一個新的 Lua 狀態。

    lua_State *L = lua_newstate(0, 0); // 建立一個新的 Lua 狀態
    
  2. lua_close - 關閉一個 Lua 狀態。

    lua_close(L); // 關閉 Lua 狀態
    
  3. lua_openlibs - 開啟 Lua 的標準庫。

    lua_openlibs(L); // 開啟所有標準庫
    
  4. lua_getglobal - 獲取全域性變數。

    lua_getglobal(L, "myGlobal"); // 獲取名為 'myGlobal' 的全域性變數
    
  5. lua_setglobal - 設定全域性變數。

    lua_pushnumber(L, 42); // 將數字 42 推入棧
    lua_setglobal(L, "myGlobal"); // 將棧頂的值設定為全域性變數 'myGlobal'
    
  6. lua_pcall - 呼叫一個函式。

    int status = lua_pcall(L, 0, LUA_MULTRET, 0); // 呼叫棧頂的函式
    if (status != LUA_OK) {
        // 處理錯誤
    }
    
  7. lua_pushnumber - 將一個數字推入棧。

    lua_pushnumber(L, 123); // 將數字 123 推入棧
    
  8. lua_pushstring - 將一個字串推入棧。

    const char *str = "Hello, Lua!";
    lua_pushstring(L, str); // 將字串 "Hello, Lua!" 推入棧
    
  9. lua_pushboolean - 將一個布林值推入棧。

    lua_pushboolean(L, 1); // 將真值推入棧
    
  10. lua_pushnil - 將 nil 推入棧。

    lua_pushnil(L); // 將 nil 推入棧
    
  11. lua_pop - 從棧中彈出元素。

    lua_pop(L, 1); // 從棧中彈出一個元素
    
  12. lua_newtable - 建立一個新的空表。

    lua_newtable(L); // 建立一個新的空表
    
  13. lua_settable - 將一個值設定到表中。

    lua_pushstring(L, "key"); // 推入鍵
    lua_pushnumber(L, 123); // 推入值
    lua_settable(L, -3); // 將值設定到表中,表在棧的 -3 位置
    
  14. lua_gettop - 獲取棧頂的索引。

    int top = lua_gettop(L); // 獲取棧頂索引
    
  15. lua_settop - 設定棧的頂部。

    lua_settop(L, 0); // 將棧頂設定為 0
    
  16. lua_load - 載入一個 Lua 指令碼。

    int status = lua_load(L, my_reader, data, "script.lua");
    if (status != LUA_OK) {
        // 處理錯誤
    }
    
  17. lua_register - 註冊 C 函式到 Lua 中。

    lua_register(L, "myCFunction", myCFunction); // 註冊 C 函式
    

相關文章