2016-06-20 34 views
1

我想知道,是否GCC優化此(考慮a作爲一個整數數值是未知的GCC):gcc是否優化連續添加?

foo(a + 2 + 3); 

要這樣:

foo(a + 5); 

或者它並把它轉換到兩個加法?我是否需要添加特定的優化級別?

謝謝!

+2

使用'-S'選項查看GCC編譯的程序集。 –

+0

它被稱爲「不斷摺疊」。 –

回答

1

是的。它甚至不啓用優化。

它,因爲例如:

int x[2+2]; 

是合法的C,即使大小必須在編譯時是已知的。

+0

非常好的答案和例子! –