将嵌套表格从Lua传递到C

我在 Lua 中定义了以下嵌套表。我需要将其传递到我的 C++ 程序中,以便我可以准确地读取其值。我知道我可以使用 lua_getglobal(L, "parameters") 函数将单个表传递给 Lua。但在这种情况下,由于它是嵌套的,我该如何处理它?

parameters =
{
     fuel = 100,
     damage = 250,
     maxspeed = 250,
     levels =
     {
         {
             fuel = 200,
             damage = 600,
             maxspeed = 300,
         },
         {
             fuel = 300,
             damage = 750,
             maxspeed = 400,
         },
     }
}
点赞
用户1095108
用户1095108

lua_getglobal 与其他变量一样可以用于“参数”。您将在堆栈的顶部接收到该表。一旦在那里,您可以使用 lua_gettable()lua_getfield()lua_rawget*() 函数来访问它的字段。表嵌套并不影响访问它。要访问子表,使用这些函数将其推到堆栈上,并以与其“父”表相同的方式访问它。

2014-07-08 07:26:54