国际空间研究组织 | ISRO CS 2009 |问题 42
名称(其值是常量)的值替换是在
(A)局部优化
(B)循环优化
(C)恒定折叠
(D)强度降低答案: (C)
说明:常量折叠是在编译时识别和评估常量表达式而不是在运行时计算它们的过程。
Example: x = 256 * 256 * 256;
大多数现代编译器实际上不会为此语句生成两个乘法指令和一个存储。相反,它们识别诸如此类的结构并在编译时替换计算值(在本例中为 16777216)。生成的代码将加载计算值并存储它,而不是加载和乘以几个值。
Example:
int a = 30;
int b = 10
int c;
c = b * 4; // replace b by 10
if (c > 10) {
c = c - 10;
}
return c * (60 / a); // (60 / a is replaced with 2)
所以,选项(C)是正确的。
这个问题的测验