Lua
起个名字真的好难啊
这个作者很懒,什么都没留下…
展开
-
Lua调试器工作原理
lua本身提供了回调机制,就是说当某事件产生时去调用指定的函数事件类型:#define LUA_MASKCALL(1 << LUA_HOOKCALL)#define LUA_MASKRET(1 << LUA_HOOKRET)#define LUA_MASKLINE(1 << LUA_HOOKLINE)#define LUA_MASKCOUNT...原创 2020-02-10 15:10:24 · 909 阅读 · 0 评论 -
Lua虚拟机及其工作流程
Lua虚拟机解释性脚本语言与编译型语言区别:1:由于每个脚本语言都有自己的一套字节码,与具体的硬件平台无关,所以不用修改脚本代码,就能运行在各个平台上。硬件、软件平台的差异都由语言自身的虚拟机解决2:由于脚本语言的字节码需要由虚拟机执行,而不像机器代码这样能够直接执行,所以运行速度比编译型语言差不少Lua使用的是基于寄存器的虚拟机实现方式,其中很大的原因是它的设计目标之一就是尽可能高效...原创 2020-02-10 12:00:27 · 694 阅读 · 0 评论 -
Lua协程、GC垃圾回收机制以及如何调用C/C++函数
Lua 协程(coroutine)线程和协同程序区别与联系相同之处:Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。不同之处:一个多线程程序可以同时运行几个线程(并发执行、抢占),而协程却需要彼此协作地运行,并非真正的多线程,即一个多协程程序在同一时间只能运行一个协程,并且正在执行的...原创 2019-12-11 18:38:45 · 1078 阅读 · 0 评论 -
Lua如何实现面向对象?
Lua table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。table(表)的构造构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:-- 初始化表mytable = {}-- 指定值mytable[1]= "Lua"-- 移除引用mytab...原创 2019-12-11 15:54:36 · 427 阅读 · 0 评论 -
XLua运行时热更新原理与实现
前言感谢提供思路两个博客主以下是博客地址:https://gameinstitute.qq.com/community/detail/120538https://www.jianshu.com/p/7b8ae23ecd81基本知识(热更新原理)我们在require一个Lua文件的时候是将Lua文件加载到package.loaded[modelname]中。当我们加载模块的时候,会先...转载 2019-12-11 11:21:40 · 1335 阅读 · 0 评论