创建引用表元素。

我在C语言中创建了一个更或者说不太简单的表格。现在我想在树的较低层创建一个引用。这可能吗?

想法:

ELEM000 +--> ELEM010
        +--> ELEM020 +--> ELEM120
        |            +--> **ELEM121**
        |            +--> ELEM122
        +--> ELEM030 +--> ELEM130
        |            +--> ELEM131
        |            +--> ELEM132
        +--> **ELEM121**

ELEM121也应该在上一级可见,也就是应该是引用。

我添加了一个我想要做的示例。

void PushL(lua_State *L, const char * str) {
char s[255];
strcpy(s, "ELEM"); strcat(s, str);   lua_pushstring(L, s);  // key
strcpy(s, "Value"); strcat(s, str);  lua_pushstring(L, s);  // value
lua_settable(L, -3);
}
void MakeTable( lua_State *L )
{
lua_pushstring(L, "TBL0");  // 子表的名称

lua_createtable(L, 0, 0);
lua_checkstack(L, 3);
{

PushL(L, "000");

lua_pushstring(L, "TBL1");

lua_createtable(L, 0, 0);
lua_checkstack(L, 3);
{
  PushL(L, "010");
  PushL(L, "020");

  lua_pushstring(L, "TBL2");

  lua_createtable(L, 0, 0);
  lua_checkstack(L, 3);
  {
    PushL(L, "120");
    PushL(L, "121");
    PushL(L, "122");
    lua_settable(L, -3);
  }
  PushL(L, "030");

  lua_pushstring(L, "TBL3");

  lua_createtable(L, 0, 0);
  lua_checkstack(L, 3);
  {
    PushL(L, "130");
    PushL(L, "131");
    PushL(L, "132");
    lua_settable(L, -3);
  }

  lua_settable(L, -3);
}

lua_pushstring(L, "ELEM121");
lua_pushstring(L, "ELEM121应该是一个引用");
lua_settable(L, -3);
}
lua_setglobal(L,"____myTable");
}
点赞