在 C 中,像许多其他语言一样,有if
语句。您可以在编写其他语言(如 C++ 或 Ruby)时使用该逻辑。但是,最低级别的if
语句是如何工作的?
条件如何在最低级别发挥作用?我不明白如何以非递归方式定义它。
在 C 中,像许多其他语言一样,有if
语句。您可以在编写其他语言(如 C++ 或 Ruby)时使用该逻辑。但是,最低级别的if
语句是如何工作的?
条件如何在最低级别发挥作用?我不明白如何以非递归方式定义它。
您始终可以查看生成的程序集,但它通常实现为分支或跳转指令。
if ( x == y )
001E149C mov eax,dword ptr [x]
001E149F cmp eax,dword ptr [y]
001E14A2 jne wmain+3Ah (1E14AAh)
return 0;
001E14A4 xor eax,eax
001E14A6 jmp wmain+3Fh (1E14AFh)
else
001E14A8 jmp wmain+3Fh (1E14AFh)
return 1;
001E14AA mov eax,1
if 基本上是jne
(跳转不等于)指令。如果两个值 (x
和y
) 不相等,则跳转到else
,否则继续执行并跳出if
.
在最低级别,它们是在物理硬件中实现的。它们不是用其他东西定义的,它们实际上是物理实现的。