编译器执行哪些算术运算(如果有的话)?

时间:2012-10-10 01:43:54

标签: math language-agnostic

给定诸如int myNum = 5 + (5 * 9)之类的操作或任何其他数学运算,该语句的哪些部分(如果有的话)由编译器执行?哪些是在运行时执行的?显然,在编译时不能简化不断变化的变量,但某些操作可能会。编译器是否甚至需要进行任何此类简化(例如制作上述语句int myNum = 50;)?这在负载,速度或任何其他客观测量方面是否重要?

细节是关键,请尽可能地阐述你的想法。

我的意思是这适用于任何算术运算。

1 个答案:

答案 0 :(得分:3)

查看constant folding

常量折叠是在编译时简化常量表达式的过程。常量表达式中的术语通常是简单的文字,例如整数2,但也可以是其值永远不会被修改的变量,或者显式标记为常量的变量。