要理解Lua和C的交互,先要理解堆栈和全局表两个概念
Lua和C/C++语言交互的主要方法是一个无处不在的虚拟栈,栈的特点是先进后出.
Lua的全局表可以想象成一个map哈希表结构,比如Lua有一个变量:
name = “hello world”
全局表中存放了name
和hello world
的对应关系, 可以通过name
在全局表中找到对应的hello world
hello.lua
name = "hello world"
name
字符串的值, 首先把name
放到堆栈(栈顶),方便Lua看到;name
的值, 此时栈顶变为空;name
对应的字符串;hello world
;hello world
放到堆栈(栈顶);**注意:**为了更好的展示原理,文中的图片来自于网络上博客中图片.