<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">这篇为学习lua杂记。</span>
一、关于lua源码的一些文件:
1.lua.c —— lua解释器程序源码。
2.lua.h —— 该头文件定义了Lua提供的基础函数,包括创建Lua环境,调用Lua函数(如 lua_pcall)、读写Lua环境中全局变量,
以及注册供Lua调用的新函数等。该头文件定义所有内容都有一个“lua_”前缀。
3.luaxlib.h —— 该头文件定义了Lua辅助库提供的函数。他的所有定义都以“luaL_”为前缀(如 luaL_loadbuffer)。辅助库是一个
使用lua.h中的API编写出来的一个较高的抽象层。注:辅助库没有直接访问Lua内部,它都是官方的基础API来完成
所有工作的。
二、关于lua的一些函数:
1.luaL_newstate() —— 创建一个新的Lua环境(或状态)。当创建一个新的环境时,该环境为空,新环境中没有包含预定义的函数。
为了使Lua保持小巧,所有标准库都被组织到了不同的包中。在lualib.h中定义了打开这些库的函数。
2.luaL_openlibs (lua_State *L) —— 该函数可以打开所有的标准库。
3.luaL_loadbuffer(L,s,sz,n) —— 编译加载到Lua环境中的命令。如果没有错误,此函数返回0,并想栈中压入编译后的程序块。
4.lua_pcall(L,n,r,f) —— 通过调用此函数,将luaL_loadbuffer()压入栈中的程序块弹出,并在保护模式中运行它。与luaL_loadbuffer
一样,该函数返回0表示没有错误。如果发生错误,那么这些函数就会向栈中压入一条错误消息。
对于lua_pcall函数的参数的一些补充,第一个参数就是Lua环境,第二个参数为函数需要传入几个参数,第三个为函数返回几个参数,第四个
则为出错后调用错误函数的索引,这个函数必须存在在栈中。
详细:http://www.360doc.com/content/12/0529/19/1317564_214572845.shtml
5.lua_tostring(L,i) —— 用该函数可以获取lua_pcall调用的函数错误时向栈中压入的一条错误信息。打印后,
可以用lua_pop()把它从栈中删除。
三、关于栈的一些基础理解:
一、关于对栈操作的一些函数:
①.压栈操