怎样在lua中定义c的结构体

 我来答
聆听随风_
推荐于2017-11-26 · TA获得超过157个赞
知道小有建树答主
回答量:139
采纳率:100%
帮助的人:66.4万
展开全部
LUA只有表。可以当容器,可以当结构体
举个例子

---------------------------------------lua-----------------------------------------------
--定义全局表TableStruct,内容在使用的时候给结构体赋值。
local struct = {}

--给你的结构体赋值,“.” 的后面的 “Sex” ,“Age","Name"就类似于C/C++中的结构体成员。
function GetValue()
--给结构体赋值
TableStruct.Sex = "man"

TableStruct.Age = 22
TableStruct.Name = "LiMing"
end

function GetStrucValue()
--取表(结构体)中的值

local Sex = TableStruct.Sex
local Age = TableStruct.Age
local Name = TableStruct.Name

end
---------------------------------------------------------------------------------------------

再举个C的例子吧,内容内容同上

//定义结构体
struct Struct
{
char Sex;

int Age;

char Name;

}

//给结构体赋值
void GetValue()
{
Stuct.Sex = "man"
Stuct.Age = 22
Stuct.Name = "LiMing"
}

void GetStrucValue()
{
//取表(结构体)中的值
char Sex = Stuct.Sex
int Age = Stuct.Age
char Name = Stuct.Name
}

总结,lua中只有表,要在lua中定义结构体,需要先定义lua表,此例子是在表结构在赋值的时候确定。而c中的结构体是先把结构体的结构定义好,才使用。 除了上述例子,方法还有很多。这就是lua的最经典之处,不知道楼主对lua有没有新的认识。
以上纯手打。
zzz_ss654321
2014-04-18
知道答主
回答量:10
采纳率:0%
帮助的人:6.3万
展开全部
采用 luajit, 其中的 ffi.cdef 就是定义 C 结构体的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式