假设我正在以 WebAssembly 文本格式编写以下 C 代码:
if (a < 2) a = 5;
else a = 6;
WASM:
(if
(i32.eq (get_local $x) (i32.const 10))
(then (i32.local 5) (set_local $x))
(else (i32.const 7) (local.set $a))
)
这也有效:
(
;; ....
get_local $a
i32.const 2
i32.lt_s ;; a < 2
(if
(then
i32.const 5
local.set $a
)
(else
i32.const 7
local.set $a
)
)
;; ...
)
要关注哪一个?为什么操作数之前和之后的写操作不同?
答案 0 :(得分:1)
这纯粹是个人喜好问题——汇编的代码是一样的。你更喜欢哪种风格? (但我必须说,您的 WASM 代码与您的 C 代码不同!)