c 怎麼傳遞陣列到,C 怎麼傳遞乙個陣列到LUA

時間 2021-08-30 09:50:35

1樓:匿名使用者

陣列的操作,參考例項如下:

陣列其實是一種特殊的**。

int luaarray(lua_state* l);for(int n=0;n

return 1; //push進棧的資料都在設定陣列時自動pop了,所以現在棧裡只有1個資料,就是最開始push的表

}lua獲取剛剛傳的**

array=luaarray()

for i,v in ipairs(array)doprint(v)end

2樓:匿名使用者

lua裡的table和c++裡的陣列差別比較大,我們並不能直接把錶簡單的傳過去,所以我們要把陣列轉化成乙個table裡可以儲存的方式,因此我們必須遍歷一下c++裡的陣列。

3樓:匿名使用者

只能乙個乙個壓入 正如樓上所說 c++不存在和lua裡table完全匹配的資料型別

所以我們可以把這個壓入函式寫到lua裡

先在c裡寫乙個函式fun

fun把指定的乙個全域性變數壓入堆疊

然後把fun註冊到lua裡,假設命名為fun然後在lua裡遍歷表的時候將當前元素賦予那個全域性變數並且呼叫fun這樣做的好處在於 不用每次壓table都要去重新計算table長度當然 只是提供乙個思路 如果具體**編寫起來還有困難的話 可以再找我

c++怎麼傳遞乙個陣列到lua?

4樓:一騎當後

陣列的操作,參考例項如下:

陣列其實是一種特殊的**。

int luaarray(lua_state* l);for(int n=0;n

return 1; //push進棧的資料都在設定陣列時自動pop了,所以現在棧裡只有1個資料,就是最開始push的表

}lua獲取剛剛傳的**

array=luaarray()

for i,v in ipairs(array)doprint(v)end

lua中怎麼傳入多維陣列

5樓:匿名使用者

用luajit裡面的ffi庫來實現傳入多維陣列;

lua就是個玩的語言,直接把位址按lua_pushnumber給lua,然後用ffi.cast轉成要的陣列指標型別可以了;

lua 是乙個小巧的指令碼語言。

lua指令碼可以很容易的被c/c++ **呼叫,也可以反過來呼叫c/c++的函式,這使得lua在應用程式中可以被廣泛應用。不僅僅作為擴充套件指令碼,也可以作為普通的配置檔案,代替xml,ini等檔案格式,並且更容易理解和維護。

6樓:匿名使用者

在c中沒有類似lua中的表的。不過你可以用lua的api生成這樣的表供lua**使用。有點像給lua寫擴充套件那樣,在lua程式設計這本書裡面25章就是例子。比如下面這種**:

void setcolor (struct colortable *ct)

7樓:匿名使用者

用luajit裡面的ffi庫,直接把位址按lua_pushnumber給lua,然後用ffi.cast轉成你要的陣列指標型別。

如何將c++物件傳給lua使用

8樓:匿名使用者

物件無法傳

你看lua的教程就知道了

lua支援的不是c++ 是c 而且不是所有的c都支援本身lua是用標準c語言開發 所以也只能實現c語言的功能 c++就已經超出範圍了

所以要把物件放進去 必須按照一定的格式 逐個把函式和引數放進去 再到lua按順序逐個取出

9樓:疾似雲流

可以傳遞。我自己的專案也在做這個。

不過完全用lua的c api寫起來比較痛苦,它是基於棧操作的,一會兒push, 一會兒pop, 很容易把頭都搞大了。而且lua不是天生支援物件導向,要實現類的抽象還需要在表和metatable上搗鼓。

不過有很多實現這個功能的庫,比如luabind, 用現成的庫是最直接的方式。

10樓:

不行的,不是乙個標準

c語言陣列如何在函式中傳遞?不要指標傳遞

陣列只能通過指標傳遞,不能通過值傳遞。陣列引數屬於指標引數,指標引數即時傳址引數 或叫引用引數 如果想在函式中修改引數的值,這是唯一的途徑.如果把陣列當作引數,不管願意與否,它就是指標,指向第乙個值的指標.1.陣列引數就是指向第乙個元素的指標 include void getarr int p,in...

c 中二維陣列作為引數傳遞到函式

問明 方法1 第一維的長度可以不指定 但必須指定第二維的長度。include void print a int a 5 int n,int m int i,j for i 0 i n i for j 0 j m j printf d a i j printf n 方法2 指向乙個有5個元素一維陣列的...

C怎麼將類作為引數傳遞,python怎麼向類中的函式傳遞引數

千鋒教育 public static void getresult person p public class person public string b 個人覺得有很多種方法 1 用object類 class abc public string msg public object data 2 ...