Skip to content

lua_pushcclosure

新しいCクロージャをスタックにプッシュします。

[-n, +1, m]

c
void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n);

説明

新しいCクロージャをスタックにプッシュします。

C関数が作成されると、それにいくつかの値を関連付けることができ、これによりCクロージャが作成されます。これらの値は、関数が呼び出されるたびに関数からアクセス可能です。C関数に値を関連付けるには、まずこれらの値をスタックにプッシュする必要があります(複数の値がある場合は、最初の値が最初にプッシュされます)。次にlua_pushcclosureを呼び出して、C関数をスタックに作成してプッシュします。引数nは関数に関連付けるべき値の数を示します。lua_pushcclosureはこれらの値もスタックからポップします。

nの最大値は255です。

サンプルコード

c
lua_pushnumber(L, 5);    /* 値をスタックにプッシュ */
lua_pushcclosure(L, my_c_function, 1);  /* my_c_functionをクロージャとしてプッシュ */

このコードは、C関数my_c_functionに値を関連付けたクロージャを作成し、スタックにプッシュします。

互換性

  • Lua5.1

関連項目

  • lua_pushcfunction
  • lua_pushvalue