假设我有以下代码:
function add(a, b)
return a + b
end
num1 = add(2, 3)
num2 = add(4, 5)
num3 = add(6, 2)
…
任何编译器都会像下面这样编译该代码:
num1 = 2 + 3
num2 = 4 + 5
num3 = 6 + 2
…
如果是这样,是否有办法明确告诉他们您希望他们这样做?如果不是,为什么不这样做,有办法告诉他们这样做吗?
我对如此明确地告诉他们这样做的能力感到好奇的原因是,它可以在不牺牲性能的情况下将代码组织到函数中,但是如果它自动发生,那么我就不必担心。
由于“任何编译器”是如此之荒谬,请随时将其缩小到您选择的流行语言。
编辑:如下面的注释所述,编译器可能会不断传播。考虑以下代码:
function add(a, b)
return a + b
end
function doStuff(c)
num1 = add(2, c)
num2 = add(4, c)
num3 = add(6, c)
…
end
add()
还能有机会在这里内联吗?