gcc 是否优化连续添加?

Does gcc optimize successive additions?

我想知道,gcc 是否对此进行了优化(将 a 视为 gcc 未知的整数):

foo(a + 2 + 3);

对此:

foo(a + 5);

还是将其转换为两个加法?我是否必须添加特定的优化级别?

谢谢!

是的。即使没有启用优化,它也会这样做。

它必须是因为例如:

int x[2+2];

是合法的 C,即使在编译时必须知道大小。