结构体打包
wiki
这里介绍了关于打包和解包 C 结构体的各种资源。
Lua 字符串库,包括
[string.byte]
和
[string.char]
,以及
位运算符
,提供了非常基础的函数来完成这项工作。
[lpack]
(5.0/5.1) - 一个用 C 编写的用于打包和解包二进制数据的库。 (
LuizHenriqueDeFigueiredo
)
[struct]
(5.1/5.2) - 另一个用 C 编写的用于打包和解包二进制数据的库。 (
RobertoIerusalimschy
)
[2]
- Flemming Madsen 的扩展
[Alien]
"使用 Roberto Ierusalimschy 的 struct 库的略微修改版本,可以解包二进制块(userdata),而不仅仅是字符串"。 注释:
LuaList:2009-10/msg00489.html
[luafiveqplus]
包含 Roberto 库的继承版本,包括 (大部分) Flemming Madsen 的扩展和 Alien 的大小函数。 它还确保解包不会因 Lua 的 C 栈溢出而导致程序崩溃。
[Lunary]
(5.1) - 另一个用 C 编写的用于打包和解包二进制数据的库。 (
[与其他库的区别]
) (J�r�me Vuarand)
[vstruct]
(5.1/5.2 & luaJIT) - 一个完全用 Lua 编写的用于打包和解包二进制数据的库,使用字符串库。 (Ben Kelly)
注释/示例
上述结构体打包库的比较 -
LuaList:2010-03/msg00292.html
(Sam Roberts)
ReadWriteFormat
- 使用 Lua 字符串库实现的简单打包/解包
PortableNetworkGraphicsParser
/
ModuleCompressDeflateLua
- 使用 Lua 字符串库解包的示例
[LuaJIT]
FFI 允许使用标准 C 语法定义结构体。 它们可以像访问表元素一样访问
[1]
.
struct 至少在一段时间内被认为是
LuaFiveTwo
的一部分 (
LuaList:2008-02/msg00720.html
).
其他编程语言交叉引用
Perl
[unpack]
[pack]
, Python
[struct 库]
[维基百科:数据结构对齐]
最近更改
·
偏好设置
编辑
·
历史记录
最后编辑于 2013 年 6 月 1 日下午 7:14 格林威治标准时间
(差异)