为什么函数`lua_upvalueindex`的参数`n`可以达到256?

嗨~我需要一些帮助,因为我无法理解lua参考手册中的c闭包。如下:

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

...

n的最大值为255。

...

当前函数的闭包中的上值数量(但不超过256,即一个闭包中上值的最大数量加1)小于参数n的访问,此时访问lua_upvalueindex(n),产生的是可以接受但是无效的索引。

1)和2)都是Lua参考手册中的描述。我很疑惑:

为什么lua_upvalueindex的参数n可以达到256,而闭包中的上值的最大数量只有255个?

有人可以帮帮我吗?

点赞