【发布时间】:2023-04-01 05:28:01
【问题描述】:
例如,在 C 中
if (a == 0 || a == b) return 0;
我不知道如何在 Risc-v 中编写多个条件。各位大神能帮我解答一下吗?
【问题讨论】:
-
你想带还是不带short-circuit evaluation?你试过什么?您是否尝试过查看 C 编译器生成的代码?
-
如果您可以为我演示这两种解决方案,那就太棒了,我还没有尝试过一种,您也可以向我推荐一种。我是 Risc-v 的新手,顺便感谢您提供的链接。
-
要跳过短路评估(强制评估两个表达式),您可以使用
if ((a == 0) + (a == b)) return 0;,也可以查看godbolt.org,您可以看到几种架构上的程序集输出 -
画一个流程图,然后用 asm 编码。或者用简单的
if和goto用C 编写它(没有||)。 -
@Jester 谢谢老兄,我想我明白了