在编译期间,当c代码转换为汇编语言时,三元运算符是否转换为if-else块?
答案 0 :(得分:1)
简答:不。
机器指令(或粗略地说,是人类可以更容易理解的机器指令的更高级别表示),没有if
/ else
构造。最多会有某种形式的条件跳转。
实际上,if
/ else
构造最初可能会映射到使用条件跳转的代码。三元?:
的工作最初可能至少以相同的方式映射。
然而,编译器会对代码进行一些相当高级的优化。根据CPU的需要,优化器可能会完全重新排序或删除一些具有条件跳转的代码块,并使用其他机制将其替换为产生相同结果的其他代码。
答案 1 :(得分:0)
如果在编译的c
中创建了else块,则答案为no