gpt4 book ai didi

c - 从 C 读取 Lua 表

转载 作者:太空狗 更新时间:2023-10-29 17:24:17 24 4
gpt4 key购买 nike

我正在尝试将一个 Lua 表传递给我的 C 程序,但我不知道该怎么做。

我的 Lua 代码:

local stages = {}
stages[1] = stage1
stages[2] = stage2
stages[3] = stage3

lstage.buildpollingtable(stages)

我的 C 代码:

static int lstage_build_polling_table (lua_State * L) {    
luaL_checktype(L, 1, LUA_TTABLE);

lua_getfield(L, 1, "stage1");
lua_getfield(L, 1, "stage2");
lua_getfield(L, 1, "stage3");

stage_t s1 = lstage_tostage(L, -3);
stage_t s2 = lstage_tostage(L, -2);
stage_t s3 = lstage_tostage(L, -1);

printf("%d\n",s1->priority);
printf("%d\n",s2->priority);
printf("%d\n",s3->priority);

return 1;
}

我必须做什么才能遍历所有元素?此代码会生成如下错误:

bad argument #-3 to 'buildpollingtable' (lstage-Stage * expected, got table)

谁能解释我做错了什么?

最佳答案

您的表没有名为stage1等的字段,只有字段123 .所以试试

lua_rawgeti(L,1,1);
lua_rawgeti(L,1,2);
lua_rawgeti(L,1,3);

代替

lua_getfield(L, 1, "stage1");
lua_getfield(L, 1, "stage2");
lua_getfield(L, 1, "stage3");

关于c - 从 C 读取 Lua 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com