第一个问题是lua调C的返回值的问题
//测试返回table

/**//**
下面代码相当lua如下:
function
return_table()
local
t = {}
t.result
= true
t.data
= "hello"
return
t
end
*/
int
tableReturnTable(lua_State * L)


{
lua_newtable(L);
int
table_index = lua_gettop(L);

lua_pushboolean(L,
true);
lua_setfield(L,
table_index, "result");

lua_pushstring(L,
"hello", 5);
lua_setfield(L,
table_index, "data");

return
1;
}
第二问题多参数返回
//测试多返回
/**
下面代码相当lua如下:
function mult_return()
return "hello",100,true
end
*/
int mult_return(lua_Status * L)
{
lua_pushstring(L, "hello");
lua_pushnumber(L,100);
lua_pushboolean(L,true);
return 3;
}
第三个问题,删除表中的元素
local t = {}
t.hello = "hello“
t[1] = 100
删除办法如下:
t.hello = nil
t[1] = nil
清空table
table.foreach(t, function(k,v) t[k] = nil end)


























第二问题多参数返回
//测试多返回
/**
下面代码相当lua如下:
function mult_return()
return "hello",100,true
end
*/
int mult_return(lua_Status * L)
{
lua_pushstring(L, "hello");
lua_pushnumber(L,100);
lua_pushboolean(L,true);
return 3;
}
第三个问题,删除表中的元素
local t = {}
t.hello = "hello“
t[1] = 100
删除办法如下:
t.hello = nil
t[1] = nil
清空table
table.foreach(t, function(k,v) t[k] = nil end)