>>> Мини-врезка советы
* избегайте использования глобальных и статических переменных — локальные переменные намного проще оптимизируются;
* не используйте переменные, там где можно использовать константы;
* везде используйте беззнаковые переменные где это только возможно, они намного легче оптимизируются, особенно в тех случаях, когда компилятор пытается избавиться от ветвлений;
* заменяйте int a; if ((a >= 0) && (a < MAX)) на if ((unsigned int)a < MAX), — последняя конструкция на одно ветвление короче;
* ветвление с проверкой на нуль оптимизируется намного проще, чем на любое другое значение;
* конструкции типа x = (flag?sin:cos)(y) не избавляют от ветвлений, но сокращают объем кодирования;
* не пренебрегайте оператором goto – зачастую он позволяет проектировать более компактный и элегантный код;