Оптимизирует ли gcc мой цикл с помощью условия?

У меня есть следующий цикл:

//condition will be set here to true or false

for (int i = 0; i < LARGE_NUMBER; i++) {
    if (condition) {
        //do foo
    } else {
        //do bar
    }
}

Предположение: цикл быстрее без условия, чем с условием. (Это правда?) Вопрос: Будет ли gcc вычитать мой , если , если условие было установлено вне цикла for, и сам цикл не касается условия ?

Если нет, мне следует переключить , если , и для , дублировать код, нарушить DRY и т. Д.

9
задан erenon 2 April 2011 в 11:38
поделиться