Lua在C++中表现奇怪,我无法理解?

我对这个在C++中使用的简单LUA脚本的代码有一个问题。程序正常运行并将结果10返回给控制台,但问题是,为什么当我将lua_tonumber(L,-1)中的-1更改为0时,它仍然返回10?似乎我在堆栈上有两个索引为0和-1的10。但为什么?

点赞
用户1483676
用户1483676

Lua文档中写道:

正数索引表示绝对的堆栈位置(从1开始);负数索引表示相对于栈顶的位置偏移量。

Lua不允许0索引,并且行为未定义(可能只是将0更改为1,但是您不应该依赖此行为)。

2012-08-12 18:18:43