LUA字节码中字符串启动后的三个无效字符



我正在阅读LUA字节码。我知道字符串从其长度开始,然后存储字符串。然后,字符串以空字符结束。但是,我有一个问题。它说弦长的长度为124,包括末尾的无效字符。但是,在字符串之前(长度(之前有三个空字符。这使字符串的实际长度127。

有人知道为什么会发生这种情况吗?

谢谢。

您发布的字节码从

开始
2776117978114448124...

或十六进制

0000000: 1b4c 7561 5100 0104 0404 0800 7c00 0000  .LuaQ.......|...
0000010: 3d70 7269 6e74 2828 2727 292e 6475 6d70  =print(('').dump

字符串的长度不是一个字节,它是四个字节7c00 0000

通常,用于表示字符串长度的字节数是第一行中的第二个04,在偏移8。

请参阅代码中的luau_header。

最新更新