如何使用 Lua c api 创建以下 C 语言结构?
typedef struct _c{
int d;
} obj_c;
typedef struct _b{
obj_c c[4];
}obj_b;
typedef struct _a{
obj_b b;
}obj_a;
obj_a a[4];
lua 中的上述结构 a[1].bc[1].d = 1; 我尝试将它一起使用,但它不起作用。错误消息:PANIC:调用 Lua API 时出现未受保护的错误(尝试索引数字值)
在 lua 中 a[1].bc = 1; 为了像这样使用,我编写了以下代码。此代码正常工作。
lua_createtable(L, 2, 0); // stack: {} : -1
{
lua_pushnumber(L, 1); // stack: {}, 1 : -2
{
lua_newtable(L); // stack: {}, 1, {} : -3
lua_createtable(L, 0, 1); // stack: {}, 1, {}, {} : -4
lua_pushnumber(L, 49);
lua_setfield(L, -2, "c");
lua_setfield(L, -2, "b");
lua_settable(L, -3);
}
lua_pushnumber(L, 2); // stack: {}, 2 : -2
{
lua_newtable(L); // stack: {}, 2, {} : -3
lua_createtable(L, 0, 1); // stack: {}, 2, {}, {} : -4
lua_pushstring(L, 50);
lua_setfield(L, -2, "c");
lua_setfield(L, -2, "b");
lua_settable(L, -3);
}
}
lua_pop(L, -2);
lua_setglobal(L, "a");
我该怎么办 a[1].bc[1].d = 1; 可以做成同样的形式吗?