gpt4 book ai didi

c - C如何执行它的IF语句?

转载 作者:行者123 更新时间:2023-12-04 10:42:51 24 4
gpt4 key购买 nike

C语言中没有boolean类型,那么C语言是如何将IF/Else转为true和false的呢?

幕后发生了什么?

最佳答案

编译器在决定采用 if/else 语句的哪个分支之前不会将条件表达式转换为 bool 值。相反,它会生成汇编程序指令,就像您用汇编程序编写程序时所编写的那样。

一个简单的例子:

if (x > y)
{
// Do something
}
else
{
// Do something else
}

可以翻译成(使用虚构的微 Controller ):

    CMP R12,R13
BLE label1
// Do something
JMP label2
label1:
// Do something else
label2:

如果条件更简单,如:

if (x)

如果 x 非零,则 C 语言将其视为 true,否则为 false

如果条件包含 || 和/或 && 运算符,编译器将生成使测试短路的代码。换句话说,对于表达式 x != 0 && a/x == y,如果第一个测试不为真,则甚至不会执行第二个测试。在这种情况下,这用于确保不执行除以零。

关于c - C如何执行它的IF语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com