Lua
文章平均质量分 54
还在路上的攻城狮
你所浪费的今天,是昨天死去的人奢望的明天你所厌恶的现在,是未来的你回不去的曾经。
展开
-
Lua 5.1 String 库完整版(待续。。。)
很多人都写过String库,但是没有看到完整的,也许没有找到吧。因为最近要常用,自己整理一篇。包含函数一共14个,5.1就只有这么几个 :sub(s, i, j) --截取字符串s的从第i个字符到第j个字符之间的串gsub(s, pattern, repl, n)原创 2014-03-21 17:07:46 · 4591 阅读 · 0 评论 -
Lua与C——扩展Lua(四)
因为Lua是可扩展的,我们可以通过编写新的C函数来扩展Lua。先编写C函数;int add(lua_State *L){ int num1 = lua_tonumber(L, 1); int num2 = lua_tonumber(L, 2); int sum = num1+ num2; lua_pushnumber(L, sum); retu原创 2015-06-15 18:08:39 · 1119 阅读 · 0 评论 -
Lua与C——调用Lua函数(三)
Lua允许在一个文本中定义函数,并且可以通过C语言来调用这个函数。先将带调用的函数压栈,并压入函数的参数。然后是用lua_pcall进行实际调用。最后,将调用结果从战中弹出。lua函数:function add(x, y) return x + yend /*--------- C Language--------*/double add(l原创 2015-06-15 15:11:51 · 898 阅读 · 1 评论 -
Lua与C——执行Lua脚本(二)
Lua是通过Lua解释器来执行的,也就是一段C语言的代码,通过引入Lua的库,可以自己编写代码来执行Lua脚本。在mac中引入Lua库见:点击这里原创 2015-06-15 14:31:55 · 2395 阅读 · 0 评论 -
Xcode6中lua生成静态库
1、‘先将lua的源代码加入工程,在File中添加target选择library,取名lua;2、在targets设置中选中添加的target,在build Phases 的Compile Sources中添加lua的源代码;3、在运行target中选中lua ,run会生成lua.a;4、在原来项目Build Phases的Target Depedencies和Link Binar原创 2015-06-09 21:46:45 · 2243 阅读 · 0 评论 -
Lua脚本在C++下的舞步
现在,越来越多的C++服务器和客户端融入了脚本的支持,尤其在网游领域,脚本语言已经渗透到了方方面面,比如你可以在你的客户端增加一个脚本,这个脚本将会帮你在界面上显示新的数据,亦或帮你完成某些任务,亦或帮你查看别的玩家或者NPC的状态。。。如此等等。但是我觉得,其实脚本语言与C++的结合,远远比你在游戏中看到的特效要来的迅猛。它可以运用到方方面面的领域,比如你最常见的应用领域。比如,你可以用转载 2015-01-02 00:59:48 · 724 阅读 · 0 评论 -
Lua数据结构 — lua_State(六)
作者:罗日健前面各种Lua的数据类型基本都说得差不多了,剩下最后一个数据类型:lua_State,我们可以认为是”脚本上下文”,主要是包括当前脚本环境的运行状态信息,还会有gc相关的信息。Lua这门语言考虑了多线程的情况,在脚本空间中能够开多个线程相关脚本上下文,而大家会共用一个全局脚本状态数据,如下:全局数据global_state的数据结构如下:转载 2014-12-30 19:44:18 · 3542 阅读 · 0 评论 -
Lua数据结构 — Udata(五)
作者:罗日健Udata负责存储userdata的数据,这部分其实很简单,但是为了保证系列文章的完整性,还是写一篇出来补全。下面是Udata的数据结构:意义:CommonHeader:和与TValue中的GCHeader能对应起来的部分metatable:userdata的元表,和table的元表一样的env:创建userdata时,会把当前执行语句的转载 2014-12-30 19:37:25 · 1043 阅读 · 0 评论 -
Lua数据结构 — TValue(一)
作者:罗日健数据结构的设计,在一定程度上奠定了整个系统的设计,所以决定写一个对Lua主要数据结构的分析文章,本来打算写一篇就好了,但是每个数据类型其实都有点复杂,一篇的话篇幅太长,所以就拆开几篇来写了。为什么是从TValue说起,TValue是实现Lua弱数据类型的主要数据结构,不但在脚本中的值使用了TValue,连Lua的实现中,很多数据结构也依赖于TValue,TValue转载 2014-12-27 20:55:57 · 3038 阅读 · 0 评论 -
Lua数据结构 — Table(三)
作者: 罗日健前面(一)、(二)里面其实已经把一些常用的数据类型(数值、布尔、字符串)说明了,这次要描述的是Table,Table在Lua里是一种常用的数据类型,是Lua里的精髓之一,其效率必须得到保证,而实现这种支持任意类型key和value的Table也是较为复杂的。一, Table的设计思想:1, 首先,讲一下Lua要设计的Table是怎么样子的:Lua就转载 2014-12-27 21:26:22 · 982 阅读 · 0 评论 -
Lua数据结构 — 闭包(四)
作者:罗日健前面几篇文章已经说明了Lua里面很常用的几个数据结构,这次要分享的也是常用的数据结构之一 – 函数的结构。函数在Lua里也是一种变量,但是它却很特殊,能存储执行语句和被执行,本章主要描述Lua是怎么实现这种函数的。在脚本世界里,相信闭包这个词大家也不陌生,闭包是由函数与其相关引用环境组成的实体。可能有点抽象,下面详细说明:一、 闭包的组成闭包主要转载 2014-12-27 21:59:19 · 1225 阅读 · 1 评论 -
Lua数据结构 — TString(二)
作者:罗日健存储lua里面的字符串的TString数据结构:(lobject.h 196-207)其它结构中也会有L_Umaxalign dummy这个东西,来看看L_Umaxaliagn:从字面意思上就是保证内存能与最大长度的类型进行对齐,事实上也是做这件事,这里感觉lua想给各种不同设备做一种嵌入式脚本,这里要保证与最大的长度对齐能保证CPU运行高效转载 2014-12-27 21:08:58 · 1033 阅读 · 1 评论 -
lua中求table长度问题
关于lua table介绍,看以前的文章http://www.cnblogs.com/youxin/p/3672467.html。官方文档是这么描述#的:取长度操作符写作一元操作 #。 字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。table t 的长度被定义成一个整数下标 n 。 它满足 t[n] 不是 nil 而 t[n+1] 为 nil; 此外,转载 2014-11-15 16:25:25 · 1189 阅读 · 0 评论 -
Lua5.1 table库
1、table.concat 2、table.insert原创 2014-04-24 22:07:04 · 2186 阅读 · 0 评论 -
Lua与C通信——Lua API(一)
Lua由C语言实现的嵌入式语言。C Api是一组能使C代码和Lua交互的函数。其中包括读写Lua全局变量、调用Lua函数、执行Lua代码,以及注册C函数以供Lua代码调用。lua_State *L = luaL_newstate(); /*打开Lua*/luaL_openlibs(L); /*打开标准库*/ lua_pop(L, 1); /*从栈中弹出错误消息原创 2015-06-15 11:57:11 · 1452 阅读 · 0 评论