lua2.1 C操作lua的须知细节

来源:互联网 发布:绝地求生透视辅助源码 编辑:程序博客网 时间:2024/05/01 17:40

1)CBase在C调用lua函数的时候可用,它表示了最后参数的后面一个对象相对与栈底的偏移值。

 

2)通过lua_call可以增加CBase,目标函数有多少返回值它就增加多少(将结果整合到栈上,整合到栈上是为了能找到这个值)。

如果我们总是不断地调用lua函数,那么CBase会不断地增加,直到内存耗光,所以在调用完

一个lua函数之后一定要将结果出栈。(很遗憾的是现在暂时没有发现2.1中有能将CBase变小的机制)

我们通过lua_getxxx(offset)系列来获得lua函数的返回值。

 

3)每次C调用lua的一个函数结束之后,CBase一定是指向栈顶的。

 

4)C调用lua的函数结束后,通过lua_getparam(n)可以得到第n个返回值的栈底偏移。

 

5)函数lua_getnumber(栈顶偏移)可以从lua的栈中取到具体值,也就是呼应了第一点中说的要将结果整合到栈上这个说法。

原创粉丝点击