4.4 – C 闭包
当 C 函数被创建出来,我们有可能会把一些值关联在一起,也就是创建一个 C 闭包(参见 lua_pushcclosure
);这些被关联起来的值被叫做 上值 ,它们可以在函数被调用的时候访问的到。
无论何时去调用 C 函数,函数的上值都可以用伪索引定位。我们可以用lua_upvalueindex
这个宏来生成这些伪索引。第一个关联到函数的值放在luaupvalueindex(1)
位置处,依此类推。 使用 lua_upvalueindex(n)
时,若 _n 大于当前函数的总上值个数(但不可以大于 256)会产生一个可接受的但无效的索引。