Sea*_*oux -2 compiler-construction if-statement
好吧,这是一个简单的问题,可能有点明显但是,当'if'有一个错误的条件时,它是由编译器读取的,还是编译器直接跳过它?
谢谢!:)
编译器总是读取整个程序.如果满足"if"条件,许多优化编译器会分析是否可以在编译时评估条件值.如果在编译时已知,则编译器可能会完全从生成的代码中消除该条件.但是,如果在编译时未知条件的值,则编译器将生成用于在运行时评估条件的代码.
在运行时,通常使用条件跳转指令跳转到正确的代码段,具体取决于条件值.例如,如果条件结果为假,则CPU将直接"跳过"if主体中的代码.
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |