给定诸如int myNum = 5 + (5 * 9)
之类的操作或任何其他数学运算,该语句的哪些部分(如果有的话)由编译器执行?哪些是在运行时执行的?显然,在编译时不能简化不断变化的变量,但某些操作可能会。编译器是否甚至需要进行任何此类简化(例如制作上述语句int myNum = 50;
)?这在负载,速度或任何其他客观测量方面是否重要?
细节是关键,请尽可能地阐述你的想法。
我的意思是这适用于任何算术运算。
答案 0 :(得分:3)
常量折叠是在编译时简化常量表达式的过程。常量表达式中的术语通常是简单的文字,例如整数2,但也可以是其值永远不会被修改的变量,或者显式标记为常量的变量。