lua中怎么传入多维数组
{{x=3,y=4},{x=7,y=8}}我想在c/c++端做一个这样结构的数组传到lua端该怎么实现?着急在线等,答案满意加分翻倍...
{ {x=3,y=4},{x=7,y=8} } 我想在c/c++端 做一个这样结构的数组 传到lua端 该怎么实现? 着急 在线等 ,答案满意 加分翻倍
展开
3个回答
推荐于2016-06-23
展开全部
用luajit里面的ffi库来实现传入多维数组;
lua就是个玩的语言,直接把地址按lua_pushnumber给lua,然后用ffi.cast转成要的数组指针类型可以了;
Lua 是一个小巧的脚本语言。
Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。
lua就是个玩的语言,直接把地址按lua_pushnumber给lua,然后用ffi.cast转成要的数组指针类型可以了;
Lua 是一个小巧的脚本语言。
Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。
展开全部
在c中没有类似lua中的表的。不过你可以用lua的api生成这样的表供lua代码使用。有点像给lua写扩展那样,在lua程序设计这本书里面25章就是例子。比如下面这种代码:
void setcolor (struct ColorTable *ct) {
lua_newtable(L); /* creates a table */
setfield("r", ct->red); /* table.r = ct->r */
setfield("g", ct->green); /* table.g = ct->g */
setfield("b", ct->blue); /* table.b = ct->b */
lua_setglobal(ct->name); /* 'name' = table */
}
void setcolor (struct ColorTable *ct) {
lua_newtable(L); /* creates a table */
setfield("r", ct->red); /* table.r = ct->r */
setfield("g", ct->green); /* table.g = ct->g */
setfield("b", ct->blue); /* table.b = ct->b */
lua_setglobal(ct->name); /* 'name' = table */
}
追问
这不是一维数组么 要多维的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用luajit里面的ffi库,直接把地址按lua_pushnumber给lua,然后用ffi.cast转成你要的数组指针类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询