Lua自定義userdata 與C 物件繫結

2021-10-08 19:08:10 字數 1032 閱讀 5958

userdata是lua提供給開發者自定義c/c++資料結構的一套api,他能夠在c/c++層對映記憶體空間,使我們的程式能夠更加的靈活。下面我就來介紹一下userdata是如何繫結c/c++物件的。

首先定義建構函式如下

}之後我們要給他定義乙個gc函式,好讓lua虛擬機器自動**記憶體

static int __gc

(lua_state*l)

return0;

}

我們再給他定義乙個列印函式,驗證userdata是否建立成功

static int print

(lua_state *l)

return0;

}

最後我們要講自定義的userdata註冊到lua虛擬機器中

於是乎我們就可以在lua中使用自定義的userdata了

lua自定義排序

說一下lua的table庫中比較常用的排序函式 table.sort 第乙個引數代表要進行排序的table,第二個引數是可選的,如果沒有第二個引數,那麼這個函式就會將table元素從小到大進行排序,我主要來說一下第二個引數。第二個引數是函式型別,這個函式接收兩個table元素,如果希望第乙個引數在排...

lua自定義排序函式

說一下lua的table庫中比較常用的排序函式 table.sort 第乙個引數代表要進行排序的table,第二個引數是可選的,如果沒有第二個引數,那麼這個函式就會將table元素從小到大進行排序,我主要來說一下第二個引數。第二個引數是函式型別,這個函式接收兩個table元素,如果希望第乙個引數在排...

redis自定義lua指令碼

redis底層是用c語言寫的。執行的redis命令底層是呼叫的對應的lua指令碼。下面是跟著james老師通過做自定義lua指令碼,實現限流的功能。指令碼實現的功能是 在3秒內不超過2個連線。1 lua編譯器安裝 2 lua指令碼編寫 我是在redis安裝目錄 usr local soft redi...