2016-06-20 2 views
1

мне было интересно, это GCC оптимизирует это (рассмотрим a как целое число, значение которого неизвестно НКУ):gcc оптимизирует последовательные дополнения?

foo(a + 2 + 3); 

Для этого:

foo(a + 5); 

Или же он переводит его в два дополнения? Нужно ли добавлять определенный уровень оптимизации?

Спасибо!

+2

Используйте параметр '-S', чтобы увидеть, с чем компилируется сборка GCC. –

+0

Это называется «постоянная складка». –

ответ

1

Да. Он делает это даже без оптимизации.

Он должен, потому что, например:

int x[2+2]; 

является законным C, даже если размер должен быть известен во время компиляции.

+0

Очень хороший ответ и пример! –

Смежные вопросы