emscripten - 为什么 ASM.js 没有未签名的注释?
问题描述
如题,
从规范来看,我似乎可以确保值 (x) 只能通过以下方式评估为无符号:x >>> 0
. 但据我所知,这里的“ >>> ”应该是一个运算符而不是注释。那么,为什么 ASM.js 没有 unsigned 的注解呢?
http://asmjs.org/spec/latest/#annotations
此外,众所周知,在 C 和 C++ 等编程语言中,默认类型“int”应该是有符号的,但为什么相同类型的“int”在 ASM.js 中没有符号呢?
规格说明如下,但我不太明白这一点。
int 类型是符号未知的 32 位整数类型。在 asm.js 中,变量的类型从来没有已知的符号。这允许它们被编译为 32 位整数寄存器和内存字。但是,这种表示会在有符号和无符号数字之间产生重叠,这会导致在确定它们代表哪个 JavaScript 数字时产生歧义。例如,位模式 0xffffffff 可以表示 4294967295 或 -1,具体取决于符号。因此,不允许 int 类型的值转义到外部(非 asm.js)JavaScript 代码中。
解决方案
推荐阅读
- inno-setup - 如何在 Inno Setup 的打开对话框中选择多个文件?
- google-data-studio - REGEXP_MATCH 在 Google Data Studio 中无法正常工作
- c - 在传递给函数本身的指针上调用 realloc() 是否安全?
- c - 在动态内存分配中使用指针
- node.js - 如何在 nodejs 中使用异步瀑布进行 API 调用
- c# - 如何去除前后的非字母词
- kotlin - CoroutineExceptionHandler 应该如何处理 OutOfMemoryError 或其他致命错误?
- javascript - 在类组件 React 中使用钩子
- java - JPA Embeddable 类可以包含对象引用吗?
- flutter - 从 Navigator Flutter 正确弹出屏幕