首页 > 解决方案 > WebAssembly 规范中的“块”和“循环”有什么区别?

问题描述

如标题所示,规范说“循环”是

开头带有标签的块,可用于形成循环。

对于“块”:

块结构的开头,结尾带有标签的指令序列。

但是借助“ br ”(用于将分支切换到标记块),即使使用“块”,我也可以形成相同的控制结构,对吧?那么,这两条指令有什么区别呢?

标签: webassembly

解决方案


块标签的 Abr跳转到包含的指令序列的末尾——它的行为类似于breakC 中的语句。

循环标签的 Abr跳转到所包含指令序列的开头continue——它的行为类似于C 中的语句。

前者可以向前跳跃,后者可以向后跳跃。两者都无法表达对方。


推荐阅读