lua c结构体转table本周有个任务,是将json数据和C结构体数据进行互相转换,初一看很简单,有两个方案去做。但是都是很麻烦,要么做起来简单,要么工作量大,要么工作量少,难度极高,最后找到一个折中的办法,就是通过修改源码来提供捷径。问题描述:公司的游戏服务器是由c++实现的,而客户端是android或者ios上实现的,这时的数据交互就是打包二进制数据流进行
但是呢,现在公司要做个web端的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-23 10:17:33
                            
                                113阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Lua的String字符串拼接每个语言都会遇到字符串拼接的问题。上回说到C#的字符串拼接Concat,我们知道C#中拼接许多字符串一般不用“+”号,因为每次+操作都会产生一个临时的字符串。所以C#里面就提供了StringBuilder--可变字符串来拼接,直到最后tostring的时候才会产生最终的string字符串。Lua语言里面默认是” ..“两个英文点号来表示字符串的拼接。但是当我们            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 11:01:01
                            
                                122阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            table就是Lua语言提供的数组,但是不同于Java、C++等语言,Lua table不仅是数组,还可以是Java语言中的Map,也就是table也可以存储键值对。这一点和PHP语言相似,Lua中的数组也当作键值对来处理,数组元素的键是数字。因为把 Lua 中的 table 叫作表更合适。table 的定义table用花括号来定义,元素用逗号隔开,最后一个元素后可以加逗号,也可以不加。table            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-28 15:33:40
                            
                                102阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录  本系列博客,理论上适用于合宙的Air202、Air268、Air720x、Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持)。  先不管支不支持,如果你用的是合宙的模块,那都不妨一试,也许会有意外收获。  我使用的是Air720SL模块,如果在其他模块上不能用,那就是底层core固件暂时还没有支持,这里的代码是没有问题的。例程仅供参考!一、前言1.1、什么是JSON            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 11:08:34
                            
                                132阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            元表的价值是如何体现的?如果需要拿更高级的语言来理解lua,我们可以讲   元表就是lua语言的类,就像类定义了对象的行为一样,元表定义了以该表为元表的所有lua表的行为,也就是说lua元表中包含的k-v子表中都访问得到,不管这些k对应的是函数还是其他任何类型的数据。lua提供   setmetatable(tab, mt)全局函数将mt设置为tab的元表,提供 
  getmetatable(t            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-14 08:32:42
                            
                                71阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.数据类型: string(字符串)·运算符“+、-、*、/”等操作字符串,lua会尝试讲字符串转换为数字后操作;  ·字符串连接用“..”运算符 ·用“#”来计算字符串的长度(放在字符串前面) ·字符串的相关操作以及格式化操作 Table(表)·表的初始化:Loacl tbl1 = {};Local tbl2 = {“apple”,”            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-25 20:14:48
                            
                                152阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            function FGUtilStringSplit(str,split_char)	-------------------------------------------------------	-- 参数:待分割的字符串,分割字符	-- 返回:子串表.(含有空串)	local sub_str_tab = {};	while (true) do local pos = string.find(str, split_char); if (not pos) then sub_str_tab[#sub_str_tab + 1] = str; break; end local sub...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-02-17 09:58:00
                            
                                457阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这里只介绍和插件编写比较有关的几个函数. 详细的Lua手册请参照Lua Reference Manual 5.1. table函数库一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明. table.concat(table, sep,  start, end)concat是concatenate(连锁, 连接)的            
                
         
            
            
            
            1、string.byte(s [, i [, j]]) 
 功能:返回从i到j的字符所对应的数值(字符 到 ASCII值),i默认为1,j默认为i的值 
 如:s="123456" s:(1,2) => 49 50 
 -------------------------------------------------------------------------------- 
 2、s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 20:27:25
                            
                                139阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Q:模式匹配字符串的相关函数?A:--[[ string.find(s, pattern [, init [, plain]])
     在字符串"s"中查找第一个与匹配模式"pattern"相匹配的子串,
     函数返回子串的開始位置和终止位置。假设未找到返回"nil"。
     假设在"pattern"中定义了捕获,捕获物也会在之后依次返回。"init"可指定从字符串"s"的什么位置開            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 12:10:16
                            
                                83阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            string库提供了字符串处理的通用函数。 例如字符串查找、子串、模式匹配等。 当在 Lua 中对字符串做索引时,第一个字符从 1 开始计算(而不是 C 里的 0 )。 索引可以是负数,它指从字符串末尾反向解析。 即,最后一个字符在 -1 位置处,等等。  字符串库中的所有函数都在表string 中。 它还将其设置为字符串元表的__index 域。 因此,你可以以面向对象的形式使用字符串函数。 例            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-04 12:48:23
                            
                                256阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这是我学的最糟糕的一个模块了, lua中的json形式的[] 和{} 转化为table是把我弄的头昏脑涨,   归结原因是对lua的语法不够明确,废话少说, 我们开始来今天的重点, 从json形式中提取我们想要的键或者键值.华丽的分割线lua中内置了一个json和table形式相互转化的模块--sjson模块     sjson的官方api介绍在这            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-02 23:31:14
                            
                                277阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。LUA只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。因此在lua中并没有其他语言那样多的系统函数。Lua 是一个小巧的脚本语言。作者是巴西人。该语言的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-17 21:27:42
                            
                                66阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            写这篇博客就是想向自己强调,时刻记住线性数据结构也是经常被加速处理的,这样时间复杂度可以从 O(N) 变成 O(logN)。 lua 字符串复制函数 string.rep 在指定字符串 s 后,可以将它复制指定数量。使用 c 语言时,最经常用的就是 memset 函数,用来初始化一块内存。不管是字符串复制,还是初始化一块内存,我的想法都是一个 for 循环遍历然后赋值就完事了吧。直到今天看到了            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-08 14:29:02
                            
                                63阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              字符串或串(String)是由数字、字母、下划线组成的一串字符。  Lua 语言中字符串可以使用以下三种方式来表示:  单引号间的一串字符。  双引号间的一串字符。  [[和]]间的一串字符。  以上三种方式的字符串实例如下: string1 = "Lua"
  print("\"字符串 1 是\"",string1)
  string2 = 'codercto.com'
  print("字            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-16 14:01:00
                            
                                74阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言在《Lua中的一些库(1)》 中也说到了,要对string库的模式匹配进行单独的讲解。对于字符串的处理,对于任何语言的学习来说,都是一个难点,而且也是一个必会的知识点。给你一 个字符串,让你按照某种需求进行处理,你不会,那是多么尴尬的一件事情。所以,看完《Lua中的一些库(1)》和这篇文章之后,我争取做到让你在处理字符 串时,不再感到捉襟见肘,不再尴尬。说到Lua中的模式匹配,基本上就是围绕着            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-03 21:24:22
                            
                                103阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            L1[string]01. ASCII码互转小知识:字符串处理的几个共同的几点1.字符串处理函数 字符串索引可以为负数 表示从字符串末尾开始算起 所有字符串处理函数的 字符串索引参数都使用2.所有的字符串处理函数 其实可以用另外一种形式来显示  面向对象的方式  把string 看作是一个类  该类下面存在很多 类方法 比如string.sub string.char            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-27 21:51:17
                            
                                103阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            用过Lua的,应该知道lua有一个截取字符串的接口,string.sub(s,i,j),就是截取字符串s,从第i个字符到第j个字符的字串,这里的一个字符是一个字节,对于英文字母还是阿拉伯数学,不管是utf8编码,还是ansi(GBK)编码,都是一样的,而且对于汉字,前者占3个字节,后者占2个字节,当然还有4个字节的汉字,那如何从一个字符串比如"bg%好-+03打@/f"中准确截取出我们需要的汉字呢            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-11 14:27:47
                            
                                55阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1。 Lua函数可以接受变长数目的参数,和C语言类似,在函数的参数列表中使用(...)表示函数可以接受变长参数lua函数将参数存放在一个table中,例如arg,那么#arg可以获得参数的个数  function func_no_p(...)
  local arg={...}
  for k,v in pairs(arg} do
    print(v ..",")
  end
  p            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-21 11:36:42
                            
                                108阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Q:模式匹配字符串的相关函数? 
A: 
--[[ string.find(s, pattern [, init [, plain]])
     在字符串"s"中查找第一个与匹配模式"pattern"相匹配的子串,
     函数返回子串的开始位置和终止位置。如果未找到返回"nil"。
     如果在"pattern"中定义了捕获,捕获物也会在之后            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-02 00:01:27
                            
                                62阅读