6

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;
}

要素全体を実行するにはどうすればよいですか? このコードは、次のようなエラーを生成します。

'buildpollingtable' への引数 #-3 が正しくありません (lstage-Stage * が予期され、テーブルを取得しました)

誰が私が間違っているのか説明できますか?

4

1 に答える 1