Я действительно не уверен в обработке таблиц в C API Lua. Интерфейс, который я сейчас разрабатываю, требует, чтобы я читал содержимое таблицы, переданной моей функции c:
пример.lua:
myVector2 = {["x"]=20, ["y"]=30}
setSomePosition(myVector2)
Функция C я регистрирую как "setSomePosition":
static int lSetSomePosition(lua_State *L)
{
//number of arguments
if(lua_gettop(L) != 1)
{
//error handling
return 0;
}
//Need your help with the following:
//extract tables values of indexes "x" and "y"
return 0;
}
Я знаю, что есть несколько способов обработки таблиц, индексы которых вам иногда нужно знать, что я и делаю. Я просто сейчас запутался в этом, и чем больше я исследую, тем больше я запутался. Вероятно, потому что я действительно не знаю, как описать то, что я ищу, в правильной терминологии.
Был бы очень признателен за хороший пример кода с комментариями о том, как вы могли бы заполнить пробел в моей функции c :)
(Если у вас есть простое для понимания руководство по этой теме, не возражайте комментировать)