【2】Lua基本的函数和控制结构 【1】使用Lua (1)创建函数 hello=function()
print("Hello World")
return 99
end
print(hello()) (2)局部函数 语法
转载
2024-04-29 19:20:07
150阅读
自定义数据类型: 我们通过使用C语言实现一个Lua数组来演示Lua实现自定义用户数据。数组的结构如下所示:typedef struct NumArray{
int size; //表示数组的大小
double values[]; //此处的values仅代表一个double*类型的指针,values指向NumArray结构后部紧跟的数据的地址
}
转载
2024-05-11 10:59:29
120阅读
lua是一个内嵌式的语言,很多初学者对于lua中使用c++类中的函数,或者用c++直接创建一个自己的自定义数据类型比较头疼,因为这部分确实比较乱,牵扯到内存释放分配等问题,但是如果把其中关系理清,还是很简单的,下面这段代码是一个老外写的,我做了一些修改。首先看代码。 #ifndef LUNA_H
#define LUNA_H 1
/**************************
转载
2024-05-07 16:09:22
40阅读
Table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。Lua table 是不固定大小的,你可以根据自己需要进行扩容。print("========表========");
print("========字典========");
-- 字典是个键值对构
转载
2024-05-05 18:19:17
131阅读
Table是Lua中主要数据结构机制,基于Table,可以以一种简单、统一和高效的方式来表示普通数组、符号表、集合、记录、队列和其他数据结构。Table是没有固定大小的,可以动态地添加任意数量的元素到一个Table中。 Lua中的table类型实现了“关联数组”。可以在“关联数组”中使用整数、字符串或其他类型的值(nil除外)
转载
2024-03-25 18:08:40
69阅读
Sysbench工具是集系统测试和数据库测试一体的测试工具,但是传统的sysbench在数据库测试方面,没有遵循TPC-C测试模型,仅仅支持单个表的数据。而在实际的业务场景中,业务逻辑复杂的多。开源的优势就是,会有很多人参与进来,共同完善。Sysbench目前支持多个表的压测,并且通过自定义lua业务测试模型,使得测试更符合业务场景。 sysbench支持以下几种测试模式:1、CPU
关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下:cocos2d-x下Lua调用C++这事之所以看起来这么复杂、网上所有的文档都没讲清楚,是因为存在5个层面的知识点:1、在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 2、在cocos2d-x项目里,把纯C函数注册进Lua环境,理解coco
转载
2024-06-12 22:02:48
34阅读
效果实现一个自定义的TableLayer,该Layer具有以下特性TableLayer可以在create的时候可以设置表格的行数和列数TableLayer具有一个addCell方法可以添加CCNode对象到表格TableLayer可以自动对表格中的CCNode对象进行排列TableLayer的addCell方法添加12个宽和高相同的CCNode对象,它们的添加顺序和位置如下图所示: &
转载
2024-10-22 15:58:07
27阅读
C语言没有类似 lua_pushtable 和 lua_totable 的方法,这也很容易理解,因为C语言中没有一种数据类型可以和lua中的table相对应的,那C函数怎么操作table类型的参数或者返回table类型的结果呢,lua API中提供了一系列的操作table的函数。void lua_createtable (lua_State *L, int narr, int nrec); //
转载
2024-08-15 21:36:50
90阅读
提到内存优化,就会想到内存缓存,而提到内存缓存就必须得提到android提供的Lru缓存方案,它的核心就是LruCache类,因此,从源码的角度去看看它的工作原理。在android3.1.x(API 12)之前,我们用到的是android.util包下的LruCache,在此之后,我们可以用android.support.v4.util包下的LruChache,其实这两个包下的LruCache代码
Lua 模块与包 从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个
转载
2024-04-10 20:42:26
130阅读
转自lua程序设计第二版userdatauserdata提供一块原始的内存区域,可以用来存储任何东西。 lua中userdata没有任何预定义的操作。//根据指定的大小分配一块内存,并将对应的userdata压入栈中,最后返回这个内存块的地址
void *lua_newuserdata(lua_State *L,size_t size);元表一种辨别不同类型的userdata的方法时,为每种类型
转载
2024-04-25 22:14:11
61阅读
使用局部变量运行代码之前,Lua 会把源代码翻译(预编译)成一种内部格式,这种格式由一连串虚拟机的指令构成,与真实 CPU 的机器码很相似。接下来,这一内部格式交由 C 代码来解释,基本上就是一个 while 循环,里面有一个很大的 switch,一种指令对应一个 case。也许你已从他处得知,自 5.0 版起,Lua 使用了一个基于寄存器的虚拟机。这些「寄存器」跟 CPU 中真实的寄存器并无关联
转载
2024-05-09 16:03:28
73阅读
C++自定义迭代器:介绍了【什么时候需要用到自定义迭代器】和【如何实现自定义迭代器】。
目录1. 什么时候需要使用自定义的迭代器?常见、基本的数组类型STL 容器自定义数据类型2. 开始编写自定义迭代器之前需要思考的问题3. 如何编写及实现自定义类型的迭代器?1. 什么时候需要使用自定义的迭代器?常见、基本的数组类型对于常见、基本的数组类型,如:int
转载
2024-10-21 14:23:34
42阅读
本实例实现一种很简单的类型------布尔数组。C语言可以实现将每个布尔值存储在一个bit中,从而减少内存用量。必须的一些宏
Code Snippet
1. #defineBITS_PER_WORD (CHAR_BIT * sizeof(unsignedint)) //bit
2. #defineI_WORD(i) ((unsignedint) i
WCF是DotNet体系中很重要的一项技术,但是组内很多组员通过书籍自学的时候 感觉涉及面太广、配置文件太复杂,新名词太多、抓不到头绪,有感于此,决定进行一次组内技术培训,顺便把培训讲义整理到blog上来。不求大而全,而是要 让初学者快速入门,因此想入实例入手,并刻意隐藏一些初期用不到的内容,以降低入门门槛。有任何错误欢迎指正。注:本系列文章基于.Net Framework 3.5,以教程的最后会
function Split(szFullString, szSeparator)local nFindStartIndex = 1local nSplitIndex = 1local nSplitArray = {}while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartInd
原创
2022-03-04 16:15:50
669阅读
【前言】在《Lua“控制”C》中对Lua调用C函数做了初步的学习,而这篇才是重中之重,这篇文章会重点的总结C模块编写过程中遇到的一些问题,比如数组操作、字符串操作和C函数的状态保存等问题。现在就开始吧。【数组操作】在Lua中应该不能叫数组,而是一种table的东西;而在C语言中,没有table这种东西,只有数组。Lua中的table可以使关联的,也就是key=>value键值对,而C中,数组
一,表类型
可以当作数组或者Map来理解,比如:
1:a = {},报一个空表赋值给a
2:a[key]=value,把value赋值给表a中的字段key
3:a={ key1=‘value1’, key2=‘value2’ }
4:引用的时候,可以使用. 操作符,如: a.key1
5:如果用索引来引用,跟数组是一样的,如:a[1],注意Lua的索引是从1开始
6:可以使用增强for循环来遍历数
转载
2024-09-30 06:26:08
65阅读
最近在做一款棋牌源码的修复工作,一款常见的游戏,水果拉霸。由于整个源码是基于网狐的二次开发的,我以前也做过网狐二开,所以入手很快。不过这次的修复,前端稍微麻烦一点,我发现,前端与子游戏的后端是有一些不相符合的。所以依照游戏的游戏规则来修复游戏.最主要的是子游戏的服务端向客户端传送Lua,lua接受到socket消息后,lua把data转换为结构体。这里是lua客户端的代码,在CMD_Game.lu
转载
2024-04-11 12:11:10
45阅读