Встраиваемый или идентичный код

Как я могу настроить компилятор для генерации идентичного кода? За пример:

inline bool iszero(int a)
{
return (a == 0);
}

int main()
{
int a = 4;

if(a == 0) // First
a = 5;

if(iszero(a)) // Second
a = 5;

///...
}

В режиме отладки (с встраиванием) разобранный код выглядит так:

if(a == 0) // First
a = 5;

bool temp; // Second
if(a == 0)
temp = 0;
else
temp = 1;

if(temp == 0)
a = 5;

Почему это происходит?

Почему этот вопрос был задан? Мне нужно отладить приложение с помощью встроенных функций (для ускорения отладки) а я не хочу потерять производительность в режиме отладки.

1

Решение

Компилировать в режиме релиза с полной оптимизацией. Сгенерированный код будет эквивалентен:

int main()
{
}

Нет смысла сравнивать код без включенных оптимизаций, так как нет смысла сравнивать результаты с выключенными оптимизациями.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]