Webassembly如何获取f64的指针或引用

Posted

技术标签:

【中文标题】Webassembly如何获取f64的指针或引用【英文标题】:Webassembly how to get pointer or reference of f64 【发布时间】:2021-08-03 11:27:41 【问题描述】:

在汇编脚本中是否有任何方法可以获取 f64 类型的指针?

有效:

let c: ClassA;
changetype<usize>(c)

没用

let f:f64
changetype<usize>(f)

【问题讨论】:

【参考方案1】:

原始数字类型不是堆分配的。都作为局部变量在当前函数的堆栈上。如果你想分配它,你可以使用__alloc,例如

let f_ptr = __alloc(sizeof<f64>());
store<f64>(f_ptr, f);

如果您尝试将 f64 传递给 javascript,则不必使用间接寻址,因为它是导入/导出中可能的类型之一,以及整数。

【讨论】:

谢谢,我查了手册,应该是heap.alloc(sizeof&lt;f64&gt;()) 两者都应该工作。 github.com/AssemblyScript/assemblyscript/blob/…

以上是关于Webassembly如何获取f64的指针或引用的主要内容,如果未能解决你的问题,请参考以下文章

空指针是啥意思

如何在不使用不安全代码的情况下将float转换为二进制?

Blazor WebAssembly Server 项目如何引用客户端索引?

Blazor WebAssembly Server 项目如何引用客户端索引?

通过引用从 JS 传递数组以供 WASM 编辑?

C++原生指针,引用与智能指针