【话从这里说起】在我发表《Lua中的类型与值》这篇文章时,应该好好总结一下Lua中的function和userdata类型。现在是时候总结了。对于function,我在《Lua中的函数》这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结。【userdata是啥?】userdata是啥?简单直译就是用户数据,如果再文艺一点,就叫做用户自定义数据。要这货有什么好处呢?首先,
转载 2024-04-24 22:23:45
297阅读
一、Lua使用 lua_shared_dict 共享内存-共享进程间变量    共享内存就是在内存块中分配出一个空间,让几个不相干的进程都能访问存储在这里面的变量数据,实际我们用过的redis,memcache也具有共享内存的意义,redis,memcache等是更高级的可跨服务器的共享内存,在lua中使用共享内存也非常简单。语法:lua_shared_di
  函数有两种用途:  1).完成指定的任务,这种情况下函数作为调用语句使用;  2).计算并返回值,这种情况下函数作为赋值语句表达式使用。 1 function func_name (arguments-list) 2 statements-list; 3 end; 4 5 --调用函数的时候,如果参数列表为空,必须使用()表明是函数调用 6 print(8*9, 9/8)
转载 2024-03-26 08:31:09
161阅读
lua语言有如下两个特点:1.lua中的函数可以被存放在变量、表中,也可以作为函数的参数,还可以作为函数的返回值,如:    func = function()         print("Hello");       end   等价于       function func()         print("Hello");       end  这两种写法都是函数func()的定义;并且下
PHP打印输出函数汇总_php技巧本篇文章一直来学习PHP中所有用于输出信息的函数,分类比较来学习其相同点与不同点,掌握日常开发中必备的技巧。开发就一定需要调试代码,而PHP调试代码不能像iOS那种编译器语言可以通过Xcode这样的开发软件来单步调试,因此开发PHP的人员通常会通过输出函数打印相关提示信息来调试代码。PHP中常用的打印输出的函数一步步讲解echoecho函数可以同时输出多个字符串,
这段时间由于面试的一个问题(虚函数的实现原理),算是认真的看了下虚函数实现的几个介绍,有了一定的认识,简单来说,就是在创建类时,如果函数方法中存在virtual关键字,则认为此成员函数是一个虚函数,此时类对象的内存布局中就会为这个对象创建一个虚函数表,用以实现多态。指向此对象的首地址永远是虚表的指针地址,这样方便多态函数的访问。这里有一个“地址里的地址的概念”,即指向的内容值,实际也是一个指针的地
一、JS函数的本质JS函数本质就是一种对象!!! 编写者完全可以用操作对象的方式去操作函数var obj = { }; function fn() { } /** * 分别向对象和函数添加属性值,以验证函数其实就是一类对象 */ obj.info = "对象"; fn.info = "函数"; console.log("obj是" + obj.info); // 正常打印"obj是对
一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图: lua的栈类似于以下的定义, 它是在创建lua_State的时候创建的:  &nbsp
转载 2024-06-04 07:54:29
45阅读
一、Lua虚拟机的栈1.1先简单介绍下Lua虚拟机的栈,如图:                                               &n
转载 2024-04-29 11:23:37
0阅读
1. Lua的堆栈和全局表我们来简单解释一下Lua的堆栈和全局表,堆栈大家应该会比较熟悉,它主要是用来让C++和Lua通信的,是的,它们并不认识对方,只能通过堆栈来沟通,就像写信一样。(旁白:它们不会用微信吗?!微信~!不知道?)Lua的全局表又是什么呢?可以想象成是一个map哈希表结构,比如Lua有一个变量:name = “hello”那么,全局表就存放了”name
转载 2024-05-24 21:06:15
73阅读
(一)通过一个简单的例子来看一下userdata的用法:写一个C的Lua库,让Lua能够访问C的数组,借助userdata来实现。(1)VS中新建一个DLL工程,设置好lua库的包含目录、链接库;(2)新建一个源文件main.cpp,代码如下: #include <stdio.h> #include <string.h> extern "C" { #inc
转载 2024-04-15 12:25:17
111阅读
文章目录一、前言二、printf函数1.printf函数定义2.格式格式化字符串1.字符串常量2.格式控制字符串a.类型b.标志c.最小宽度d. .精度e.类型长度3.转义字符三、总结 一、前言上一篇文章主要叙述了一下scanf函数的小细节部分,这次咱们就探究c语言中的printf函数,来揭开它的真面目!!!二、printf函数1.printf函数定义1.printf函数是c中的输出函数,也是标
【测试环境】lua版本: 5.2.1【问题场景】在”luaL_dofile”处报错,并且没有任何错误信息。 代码如下:#ifdef __cplusplus extern "C" { #endif #include "luajit-2.0/lua.h" #include "luajit-2.0/lualib.h" #include "luajit-2.0/lauxlib.h" #ifdef __c
转载 2024-05-06 16:41:18
157阅读
大多数Excel用户都需要将表格打印成纸稿,用户在打印表格时会遇到不同的要求。譬如:打印的每张纸稿统一标题行;打印一张表格中的一部分内容;或者表格太大,需要对表格进行缩印等。 本文介绍一些工作中常用的打印技巧,掌握这些打印技巧可以更好的完成工作中的打印任务。 1、打印标题行或标题列 2、临时设置指定打印区域 3、指定打印区域(非临时)并保存设置 4、分页预览调整打印尺寸 5、微调打印大小 6、打印
其实,C语言没有提供专门的数据输入、输出语句,所有数据的输入输出都是通过调用标准库函数中的输入入、输出函数来实现。一.printf()函数的一般形式为:printf("格式控制串",输出列表);格式控制串: 格式说明符(以”%”开始)、转义字符(以”\”开始)和普通字符。输出列表:常量、变量或表达式。ps:如果格式控制串中没有格式说明符,那么该输出语句里就不能有输出列表,也不需要表示分隔
到目前为止,我们写的C函数都还是单个的函数函数之间没有联系,也没有涉及返回C结构体以及指针,但实际的业务场景中肯定不会这么简单,比如我们现在要扩展lua使之能够操作redis,首先至少需要一个连接redis服务器的方法并返回一个连接句柄,然后用这个连接句柄来进行各种查询,最后使用结束还需要关闭这个连接句柄,通常来说,这个连接句柄会是一个结构体,那问题是该怎么返回这个结构体给lua呢。用C操作Re
转载 2024-03-26 12:46:53
107阅读
Lua的堆栈是很重要不可或缺的,就像我的旁白一样(旁白:他竟然赞我了。。。好羞涩~)。虽然看起来没什么用,但是少了又绝对不行。   正文: Lua堆栈的索引,因为我们在很多操作里都涉及到堆栈的索引,比如上一章中我们要从堆栈中取得一个字符串,就必须给出堆栈索引: 1. /* 获取栈顶的值 */ 2. const char* str = lua_tostring(pL, 1);
转载 2024-04-29 12:41:34
66阅读
如何主动打印调用栈?如果是Java、Js,那么很简单,三行就能实现。但 VisualStudio 就复杂多了。如果不下断点,那么只能在崩溃的时候被动查看。而使用 Backward-Cpp ,只需在项目中拖入一个hpp文件,就可以主动打印。但默认输出是 stderr,无法在 VisualStudio 的 output 窗口看到任何信息。全网搜索半小时后,才从另外零星的代码片段中推得,需要将 stri
        在实际开发过程中,代码日志是必不可少的系统,尤其是在线上版本中,对于查找问题相当有帮助。但是cocos2dx lua的代码日志是基于lua的print打印,只写在console中,不会长久保存。怎么办,那么我们来设计一个简单的日志系统,让日志保存下来。        话不多说,直接上代码:(添加了注释)
 经过上一章的讲解,相信大家也看到了,Lua的堆栈是很重要不可或缺的,就像我的旁白一样(旁白:他竟然赞我了。。。好羞涩~)。虽然看起来没什么用,但是少了又绝对不行。(旁白:你妹纸的,你这算是赞人吗?) 笨木头花心贡献,啥?花心?不呢,是用心~正文:  在这里我仅简单解释一下Lua堆栈的索引,因为我们在很多操作里都涉及到堆栈的索引,比如上一章中我们要从堆栈中取
转载 2024-04-09 07:19:57
47阅读
  • 1
  • 2
  • 3
  • 4
  • 5