我将以非常简单的形式陈述我的问题,即:
如果我输入 C
void main(){
int a=3+2;
double b=7/2;
}
什么时候 a 和 b 会被赋予 5 和 3.5 的值,是在我编译代码时还是在运行代码时?
换句话说,当我按下编译时会发生什么?以及它与我按下运行时的情况有何不同,就分配值和进行计算而言,这与编写我的代码有何不同:
void main(){
int a=5;
double b=3.5;
}
我问这个是因为我听说过编译器优化,但这不是我的领域。
任何意见,评论将不胜感激。 谢谢。
最佳答案
既然您问的是“代码优化”——一个好的优化编译器会将这段代码优化到 void main(){}
。 a
和 b
将被完全消除。
此外,7/2 == 3
,而不是 3.5
关于c++ - 编译和代码优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19602310/