【Cocos2d-x lua篇003】简单解析Lua的堆栈
来源:互联网 发布:python爬百度文库 编辑:程序博客网 时间:2024/05/17 04:24
在这里我仅简单解释一下Lua堆栈的索引,因为我们在很多操作里都涉及到堆栈的索引,比如上一章中我们要从堆栈中取得一个字符串,就必须给出堆栈索引:
- /* 获取栈顶的值 */
- const char* str = lua_tostring(pL, 1);
如果对堆栈索引不清晰的话,将会很纠结。
《游戏人工智能编程案例精粹》一书的200页,有一张图,很好地表达了Lua的堆栈索引是如何定义的,我照着画了一张:
我们很明显的看到堆栈的索引方式有两种,一种是正数索引,一种是负数索引。
并且咋一看,好像两种索引方式的规则是相反的,其实不然,我们来认真数数:
1. 正数索引,栈底是1,然后一直到栈顶是逐渐+1,最后变成9(9大于1)
2. 负数索引,栈底是-9,然后一直到栈顶是逐渐+1,最后变成-1(-1大于-9)
)
对吧,一般像旁白那种人才会认为是相反的规则。
(旁白:吐槽是我的专利= =!)
大家不觉得奇怪吗?为什么要用两种方式?好混乱~!
我也觉得,但是有一点好处,看看它们各自的好处:
1. 正数索引,不需要知道栈的大小,我们就能知道栈底在哪,栈底的索引永远是1
2. 负数索引,不需要知道栈的大小,我们就能知道栈顶在哪,栈顶的索引永远是-1
- 【Cocos2d-x lua篇003】简单解析Lua的堆栈
- 【木头Cocos2d-x 028】Lua篇(第03章):简单解析Lua的堆栈
- 【木头Cocos2d-x】Lua篇(第03章):简单解析Lua的堆栈
- 【木头Cocos2d-x 028】Lua篇(第03章):简单解析Lua的堆栈
- 简单解析Lua的堆栈
- cocos2d-x lua脚本简单的了解
- Lua篇(第03章):简单解析Lua的堆栈
- cocos2d-x hello.lua解析
- cocos2d-x lua json解析
- 【Cocos2d-x lua篇005】C++调用Lua的函数
- 【Cocos2d-x lua篇006】Lua调用C++的函数
- 堆栈的简单lua实现
- cocos2d-x Scale9Sprite的使用方法 lua篇
- cocos2d-x 的lua继承
- cocos2d-x的lua绑定
- cocos2d-x 3.x C++和Lua通信方式:Lua堆栈正数索引和负数索引的关系和用法
- quick-cocos2d-x lua编写简单的场景
- Lua 中调用 cocos2d-x 的24种简单特效
- 论c&c++
- 协程 or 纤程 ?
- ejb 网络通信支持- RMI
- 《数字图像处理》冈萨雷斯学习笔记1:基本原理
- linux rootkit suterusu
- 【Cocos2d-x lua篇003】简单解析Lua的堆栈
- Android Journal
- BB10 点对点的向另一个NFC设备发NDEF消息
- Android主线程里不允许网络操作
- Android手机软件研发环境配置
- 【Cocos2d-x lua篇004】获取Lua表结构数据
- UITabBarController+UINavigationController多层嵌套
- HDU 1029 Ignatius and the Princess IV 【求众数】
- 【Cocos2d-x lua篇005】C++调用Lua的函数