LuaJit ffi 訪問C中的結構體

2021-07-11 01:40:03 字數 1093 閱讀 3801

luajit是另乙個lua語言的解析器。

luajit 是採用 c 和組合語言編寫的 lua 直譯器與即時編譯器。luajit 被設計成全相容標準的 lua 5.1 語言,同時可選地支援 lua 5.2 和 lua 5.3 中的一些不破壞向後相容性的有用特性。因此,標準 lua 語言的**可以不加修改地執行在 luajit 之上。luajit 和標準 lua 直譯器的一大區別是,luajit 的執行速度,即使是其彙編編寫的 lua 直譯器,也要比標準 lua 5.1 直譯器快很多,可以說是乙個高效的 lua 實現。另乙個區別是,luajit 支援比標準 lua 5.1 語言更多的基本原語和特性,因此功能上也要更加強大。

1 編譯luajit,生成的luajit在src檔案下。

沒有使用make install,因為沒有管理員許可權。

2 export path=$path:.:/data/project/lua-5.3.2/src:/data/project/luajit-2.1.0-beta2/src

3 寫乙個指令碼

test.lua

local ffi = require("ffi")

ffi.cdef[[

typedef structmy_para;

]]--宣告乙個結構體

local n = 10

local para = ffi.new("my_para[?]", n)--新建變長的結構體變數

for i=0, n-1 do

para[i].len = i;

para[i].value ="zhao";

endfor i=0, n-1 do

print(para[i].len);

local myname = ffi.string(para[i].value);

print(myname);

end

4 luajit test.lua

0zhao

1zhao

2zhao

3zhao

4zhao

5zhao

6zhao

7zhao

8zhao

9zhao

C 中的訪問

參考部落格 一 類的訪問機制中的公有成員 public 的訪問許可權 1 類的函式 2 子類的函式 3 友元函式 4 類的物件 可以被以上訪問 二 而私有成員 protected 的訪問許可權 1 類的函式 2 子類的函式 3 友元函式 相對於公有成員 public 就是無法被物件所訪問 三 私有成...

C 中的訪問許可權

private 只能由該類的成員函式,友元函式訪問,不能被該類的物件訪問。protected 除了private外還能被子類的函式訪問,同樣不能被該類的物件訪問。public 除了protected外,還能被該類的物件訪問。private protected public 類的函式和友元函式 子類的...

C 中訪問控制

1 include 2 using namespace std 3 4 class a 11 void disp a a 12 那麼某個函式通過類p訪問 o中成員時,該函式對類o中的 public 成員只有 protected 許可權。我們經常聽到這樣的說法 protected private pu...