webassembly示例
时间: 2023-07-07 15:36:22 浏览: 220
以下是一个简单的WebAssembly示例,它将两个数字相加并返回结果:
首先,我们需要创建一个 C 或 C++ 文件,将代码编写为一个函数,该函数接受两个数字作为参数并返回它们的和。例如,我们将创建一个叫做 "add.c" 的文件,代码如下:
```
int add(int a, int b) {
return a + b;
}
```
接下来,我们需要使用 emscripten 编译器编译该代码,生成 WebAssembly 模块文件和 JavaScript 包装器。emscripten 编译器是一个工具集,它可以将 C/C++ 代码编译为 WebAssembly 模块和 JavaScript 包装器。我们可以使用以下命令进行编译:
```
emcc add.c -s WASM=1 -o add.js
```
这将生成一个名为 "add.js" 的 JavaScript 文件和一个名为 "add.wasm" 的 WebAssembly 模块文件。
现在我们可以在 HTML 文件中加载这些文件并使用它们。我们创建一个 HTML 文件,将其引入生成的 JavaScript 文件和 WebAssembly 模块文件,并使用以下代码调用 "add" 函数:
```
<script>
// 加载 WebAssembly 模块
const wasmModule = new WebAssembly.Module(await fetch('add.wasm').then(response => response.arrayBuffer()));
// 创建 WebAssembly 实例
const wasmInstance = new WebAssembly.Instance(wasmModule);
// 调用 "add" 函数
const result = wasmInstance.exports.add(2, 3);
console.log(result); // 输出 5
</script>
```
这将加载 WebAssembly 模块文件,创建 WebAssembly 实例并调用 "add" 函数,将 2 和 3 作为参数传递,并将结果打印到控制台。
阅读全文