Просмотр исходного кода

update: 优化pack的格式化字符串描述

Wendal Chen 2 лет назад
Родитель
Сommit
b55520cb7d
1 измененных файлов с 24 добавлено и 2 удалено
  1. 24 2
      luat/modules/luat_lib_pack.c

+ 24 - 2
luat/modules/luat_lib_pack.c

@@ -5,6 +5,28 @@
 @date    2021.12.20
 @video https://www.bilibili.com/video/BV1Sr4y1n7bP
 @tag LUAT_USE_PACK
+@usage
+--[[
+ '<' 设为小端编码 
+ '>' 设为大端编码 
+ '=' 大小端遵循本地设置 
+ 'z' 空字符串,0字节
+ 'a' size_t字符串,前4字节表达长度,然后接着是N字节的数据
+ 'A' 指定长度字符串, 例如A8, 代表8字节的数据
+ 'f' float, 4字节
+ 'd' double , 8字节
+ 'n' Lua number , 32bit固件4字节, 64bit固件8字节
+ 'c' char , 1字节
+ 'b' byte = unsigned char  , 1字节
+ 'h' short  , 2字节
+ 'H' unsigned short  , 2字节
+ 'i' int  , 4字节
+ 'I' unsigned int , 4字节
+ 'l' long , 8字节, 仅64bit固件能正确获取
+ 'L' unsigned long , 8字节, 仅64bit固件能正确获取
+]]
+
+-- 详细用法请查看demo
 */
 
 #define	OP_ZSTRING	      'z'		/* zero-terminated string */
@@ -130,7 +152,7 @@ static void doswap(int swap, void *p, size_t n)
 解包字符串
 @api pack.unpack( string, format, init)
 @string 需解包的字符串
-@string 格式化符号 '<':设为小端编码 '>':设为大端编码 '=':大小端遵循本地设置 'z':空字符串 'p':byte字符串 'P':word字符串 'a':size_t字符串 'A':指定长度字符串 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long
+@string 格式化符号
 @int 默认值为1,标记解包开始的位置
 @return int 字符串标记的位置
 @return any 第一个解包的值, 根据format值,可能有N个返回值
@@ -253,7 +275,7 @@ done:
 /*
 打包字符串的值
 @api pack.pack( format, val1, val2, val3, valn )
-@string format 格式化符号 '<':设为小端编码 '>':设为大端编码 '=':大小端遵循本地设置 'z':空字符串 'p':byte字符串 'P':word字符串 'a':size_t字符串 'A':指定长度字符串 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long
+@string format 格式化符号
 @any 第一个需打包的值
 @any 第二个需打包的值
 @any 第二个需打包的值