num++++
(num++)++;
Что-то я напутал. ++++num, иначе не работает.
(+) num 2
а это какого языка синтаксис?
haskell
Все три варианта по сути просто прибавляют к числу num двойку. Но среди программистов ходят легенды что второй вариант работает быстрее, а третий ещё быстрее чем второй.
Не знаю я, где ты такие легенды слышал. Прост синтаксический сахар. Выглядит красивее. Места занимает меньше. Проще в понимании, имхо.
Второй просто короче и читается проще (хотя куда уж проще), третий - извращение.
Ну вроде как второй вариант действительно быстрее, но есть нюанс: современные компиляторы делают много неявных оптимизаций, и первый вариант всё равно будет приведен ко второму.
Ну а 1 медленнее, потому что сначала идёт суммирование, потом присвоение. А во втором случае просто увеличение.
Ну а 1 медленнее, потому что сначала идёт суммирование, потом присвоение. А во втором случае просто увеличение.
Но если речь о перегруженных операторах, то наверное компилятор не станет ничего оптимизировать. Но тогда скорость операций зависит от того, как была реализована перегрузка.
напомнило старинький прием
var num = 10;
while(num --> 0) {
//do ten times
}
var num = 10;
while(num --> 0) {
//do ten times
}
всегда так делаю в глубоких циклах
процессор любое сравнение делает через вычитание и сравнивание результата с нулём
ему не придётся выполнять лишних вычитаний, если сравнение изначально с нулём
процессор любое сравнение делает через вычитание и сравнивание результата с нулём
ему не придётся выполнять лишних вычитаний, если сравнение изначально с нулём
Вы уверены, что это имеет хоть какой-то смысл? Компиляторы очень хорошо оптимизирует. Нередко, лучше человека.
Нередко, но не всегда.
Оптимизировать стандартный цикл может любой компилятор. Так ты только понижаешь читаемость кода.
Компилятор может оптимизировать далеко не любой цикл. А программисту, для которого плохо читабелен цикл, сравнивающий декрементированную переменную с нулём, стоит подумать о смене профессии.
Знатоки, а это не UB случайно?
все из vk.... печально
Чтобы написать коммент, необходимо залогиниться