lua--从小白开始(3)

本文介绍了Lua的源码文件,包括lua.c、lua.h和luaxlib.h,以及重要的Lua函数,如luaL_newstate()、luaL_openlibs()和lua_pcall()。同时,文章讲解了Lua环境的状态、栈操作及其相关函数,如lua_pushnil、lua_pop和lua_gettop等。通过这篇教程,读者可以掌握Lua的基本操作和原理。
摘要由CSDN通过智能技术生成

<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()把它从栈中删除。

三、关于栈的一些基础理解:

一、关于对栈操作的一些函数:

①.压栈操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值