1

我不明白 uint32 和 i32 有什么区别。定义如下:

uint32

i32

另外,只有导师才有操作码,这里的“类型构造函数”是什么意思?

4

1 回答 1

2

所有uintN,varuintNvarintN都是 WebAssembly二进制格式独有的概念。它们纯粹是为了以紧凑的机器可读格式对 WebAssembly 进行编码。

i32和朋友是语言类型WebAssembly的语义对这些类型以及它们如何交互有更好的描述。基本上,它们存在于语言级别并形成可在 WebAssembly 程序中使用的基本数据类型。

他们处于两个完全不同的层次。这有点像 Cint与用于 C 源代码的 ASCII 编码。一个纯粹是在语言级别,另一个纯粹是在以稳定格式表示该语言时使用(对于 C:源.c文件;对于 WebAssembly:二进制.wasm文件)。

“类型构造函数”只是对应于二进制格式中特定二进制值的类型:您需要一些二进制值来对每种类型进行编码。回到我的 C 源示例,源字符大写 B 将被编码为0x42ASCII。那么这里 WebAssemblyi32类型被编码为 byte 0x7f

于 2017-06-22T04:12:13.060 回答