lua中,通常我们用luaL_openlibs(L)加载所有的lub标准库,但是有时候我们想只加载部分,有没有什么好的办法呢?在luaproc看到如下办法:static void registerlib( lua_State *L, const char *name, lua_CFunctio...
转载 2015-10-28 18:03:00
125阅读
讨论话题何为优雅的开发环境如何部署(本文讨论在MacOSX平台,其他平台也一样适用)优雅的Lua开发环境优雅的Lua开发环境至少包含以下几点:安装适合需求的最新稳定版Lua安装合适的Lua包管理器(推荐使用Luarocks,安装见另一文)源码安装(合理的组织安装目录,设置环境变量使Lua环境更易用且易于管理)版本选择首先我们要关注当前流行的各种Lua版本(5.1x,5.2x,5.3x),如何选择我
,剩下 状态数据,如...
转载 2015-01-20 01:34:00
122阅读
2评论
由于原来安装的Lua,SciTe等都不能正常打开运行,决定重新下载安装。 (2)下载,安装LuaForWindows_v5.1.4-40.exe (2)安装完成后:开始-运行-cmd回车,输入lua,成功安装时会显示Lua的版本等信息。本人的是: Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio (3)VS2005下新建一个win32
转载 2024-07-22 10:21:43
21阅读
RDD和共享变量是Spark中的两个重要抽象。RDD弹性分布式数据集, 是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。RDD的创建从文件系统中加载数据创建通过并行集合(数据)创建val array = Array(1,2,3
lua_State 线程相关脚本上下文 主要包括当前脚本环境的运行状态信息,还会有gc相关的信息。 global_State 全局信息 // global_State 的主要字段 typedef struct global_State { stringtable strt; // hash tabl ...
转载 2021-08-16 12:09:00
642阅读
2评论
C语言与Lua之间的相互调用详解1. 写一个C调用Lua的Demo编译运行2. C语言调用Lua编译问题总结2.1 正确的编译命令2.2 问题1:缺少-lm参数2.3 问题2:缺少-ldl参数1、为什么会出现undefined reference to ‘xxxxx’错误?2、-l参数和-L参数3 如何让Lua调用C?(其中3种方式)3.1 方式1:在C中注册函数给Lua3.2 方式2:调用C动
转载 2024-04-24 13:20:12
123阅读
由于lua是一个跨平台的脚本语言,会根据平台位数(16bitbit)、平台类型(linuxwindows)、语言标准(C89C99)、以及编译参数等开启预编译选项,导致基本数据结构的字长和类型会动态变化,以Tlinux2.2 x86_64 进行编译为基础进行分析介绍, lua版本5.3.4。并根据我们开发过程中一些常见的情景进行分析:基础数据结构Lua的基本数据表示方式是type + union的
转载 2024-03-27 05:36:05
85阅读
 数据结构  string : 短字符串  长字符串  LUA_TSHRSTR      LUA_TLNGSTR 这个小类型区放在了 类型字节的 高四位,外部的API并不能看见 所以我们看到的只有LUA_STRING一种类型。 区分长短字符串的界限 由定义在 luaconf.h中的 宏 LUAI_MAXSHORTLEN来决定 &
LVGL 本质上是一个 GUI 库,它包含大量的控件(widget),即按钮、标签、滑块、菜单栏这种具有一定人机交互特征的组合图形。LVGL 在设计时,采用了一定面向对象编程的设计思路,有效降低了代码编写的难度。LVGL 和大多数 GUI 库的工作方式都是类似的,其代码编写的基础思路为:创建 GUI 根窗体对象在窗体上绘制各种控件为控件编写响应函数函数在主事件循环中等待用户触发事件响应如果之前有
转载 2024-07-16 12:25:17
98阅读
5.3 具名实参通过名称来指定实参--os.rename,希望能接受两个具有名称的实参 rename{old="temp.lua",new="temp1.lua"} --table构造式可以省略圆括号 --将rename改为只接受一个参数 function rename(arg) return os.rename(arg.old,arg.new) end如果一个函数拥有大量参数
转载 2024-04-01 09:14:49
35阅读
有了前几天的基础,我们可以从顶向下来读 lua gc 部分的代码了。我们知道,lua 对外的 API 中,一切个 gc 打交道的都通过 lua_gc 。C 语言构建系统时,一般不讲设计模式。但模式还是存在的。若要按《设计模式》中的分类,这应该归于 Facade 模式。代码在 lapi.c 的 895 行:/* ** Garbage-collection function *
转载 2024-04-13 09:53:35
178阅读
lua lua_State 结构设计 数据结构 lua的内存结构最主要有三大块,lua_State、 CallInfo、 lua_TValue。 lua_State里面的 stack (栈)是主要的内存结构,类型是 lua_TValue; lua_TValue 主要是Value,是一个 uion,存 ...
转载 2021-08-19 19:54:00
298阅读
2评论
摘要:本文深入浅出的讲述了设计模式中的状态模式,并给出了简单的示例,例子浅显易懂,并附带源代码。        状态模式属于对象创建型模式,其意图是允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了他的类。比较常见的例子是在一个表示网络连接的类TCPConnection,一个TCPConnection对象的状态处于若干不同
推荐 原创 2007-10-06 12:31:08
10000+阅读
4评论
在JAVA中,用Thread类代表线程,所有线程对象,都必须是Thread类或者Thread类子类的实例。每个线程的任务就是执行一段顺序执行的代码,JAVA使用线程执行体来容纳这段代码。所以,我们创建线程时,主要是根据实际需求,编写放入线程执行体的代码。一、继承Thread类创建线程1、定义一个类继承Thread类,并重写Thread类的run()方法,run()方法的方法体就是线程要完成的任务,
转载 2024-07-13 09:25:34
78阅读
Lua中,表达式包括:数值常量、字符串字面值、变量、单目和双目运算符,函数调用,也包括一些非传统的函数定义和表结构。1.算术运算符Lua支持常规的算术运算符:'+', '-', '*', '/', '^', '%', '-'(负)。所有这些运算符都对实数起作用。举个例子,x^0.5, 计算x的平方根, x^(-1/3),计算x的立方根的反数。在Lua中,'%'运算符定义规则如下:a%b
由于近期项目中提出了热更新的需求,因此本周末在Lua的陪伴下度过。对Lua与Unity3d的搭配使用,仅仅达到了一个初窥门径的程度,记录一二于此。水平有限,欢迎批评指正。 网络上关于Lua脚本和Unity3d的配合使用的资料不多,例子工程大多相同。大概了解到针对性的插件有uLua、UniLua、KopiLua三种。试用了前两种,抛开效率与安全性不说,感觉uLua试用起来比较简单,本文只介
转载 2024-03-19 10:16:41
107阅读
lua2.1的语法解析过程跟我们在课本上学到的“语法分析->抽象语法->中间代码”的前端过程不一样,可能作者考虑到lua自身本不复杂,或者并不需要支持多种后端分析器,所以省略了“抽象语法”和“中间代码”这个过程,直接可执行的字节码。  lua2.1是在lua.stx中描述语法解析过程,这个文件最终会被yacc使用并生成真正的的语法分析文件。由于yacc使用了自底向上的的解析
转载 2024-06-06 10:59:17
22阅读
作者:究极逮虾户 预期当前安卓的所有proto都生成在一个module中,但是其实业务同学需要的并不是一个大杂烩, 只需要其中他们所关心的proto生成的类则足以。所以我们希望能将这样一个大杂烩的仓库打散,拆解成多个module。buf.yamlProtobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,用于描述一种轻便高效的结构化数据存储格式,并于200
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:    一个很好的记忆方法是,大端序是按照数字的书写顺序进行存储的,而小端序是颠倒书写顺序进行存储的。为什么会有大小端模式之分呢?这是因为在计算机系统中,
  • 1
  • 2
  • 3
  • 4
  • 5