将嵌套表从Lua传递给C

时间:2014-07-08 07:07:10

标签: c++ lua lua-table nested-table lua-api

我在Lua中定义了以下嵌套表。我需要将它传递给我的C ++程序,以便我可以准确地读取它的值。我知道我可以使用

将一个表传递给Lua
lua_getglobal(L, "parameters") 

功能。但是在这种情况下,因为它是嵌套的,我该如何处理呢?

parameters = 
{ 
     fuel = 100,         
     damage = 250,
     maxspeed = 250,
     levels = 
     {
         { 
             fuel = 200,
             damage = 600, 
             maxspeed = 300,                 
         },
         { 
             fuel = 300,
             damage = 750,
             maxspeed = 400, 
         },                    
     }
}

1 个答案:

答案 0 :(得分:1)

lua_getglobal将像其他任何变量一样适用于“参数”。您将收到堆栈顶部的表格。在那里,您可以使用lua_gettable()lua_getfield()lua_rawget*()函数访问其字段。表嵌套这一事实对访问它没有任何区别。要访问子表,请使用这些函数将其推送到堆栈,并以与“父”表相同的方式访问它。