First step in lua 2 - [转]

Lua的栈(译)
   从lua传递数据到c/c++,和从c/c++传递数据到lua都是通过lua的栈。它是一个基本的交互通道。所以,当调用一个函数,这个函数就被放到栈上,然后第一个参数被放到栈上,以此类推。它并不是一个传统意义上的栈,在这个栈上的有效操作就是push和pop。而函数在栈上也是一些合法的特殊元素。所以,就像前面说过的一样,它并不是一个真正的栈,但是我们现在可以把它看成一个栈。在栈中操作一个元素都是通过索引。索引可以是正,也可以是负。lua的文档是这样描述索引的: 
   正的索引代表它在栈中的绝对位置(起始于1,而不像c中起始于0);一个负的索引代表它从栈顶的偏移。如果栈有n个元素,索引1代表第一个元素(这是说,第一个被push入栈的元素),而索引n代表随后一个元素;索引-1也代表最后一个元素(这是说,在栈顶的元素),而索引-n代表第一个元素。我们说如果索引位于1和栈顶之间(这是说,(1 <= abs(index) <= top)),那么这个索引就是有效的。 
   有一些成组的类似于lua_toXXX的额外函数来操作lua的栈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值