怎样在lua中定义c的结构体
2个回答
展开全部
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有没有新的认识。
以上纯手打。
举个例子
---------------------------------------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有没有新的认识。
以上纯手打。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询