Lua:chunk数据类型
Lua 5.3.4
1. 数字
数据类型 | C语言类型 | Go语言类型 | 占用字节 |
---|---|---|---|
字节 | Lu_Byte(unsigned char) | Byte | 1 |
C语言整型 | int | uint32 | 4 |
C语言size_t类型 | size_t | uint64 | 8 |
Lua整型 | lua_Integer(long long) | int64 | 8 |
Lua浮点型 | lua_Number(double) | float64 | 8 |
字节:一般用来存放一些比较小的整数值,如Lua版本,函数参数等。
C语言整型:一般用来存放列表长度。
C语言size_t类型:一般用来存放长字符串长度。
Lua整形和Lua浮点型:一般在常量表里出现,记录Lua脚本中出现的整数和浮点数字面量。
2. 字符串
- NULL字符串:0x00。
- 长度小于等于253(0xFD),第一个字节记录len+1后面跟字符串的二进制。
- 长度大于等于254(0xFE)的字符串,第一个字节是0xFF,后面跟一个size_t记录长度+1,最后是字符串的二进制。
3. 列表
先用一个cint类型记录列表长度,紧接着存储n个列表元素。
4. 参考
- 《自己动手实现Lua虚拟机、编译器和标准库》张秀宏