Да ладно, надо на последнем такие снова давать - чтобы не забывали.
Я такие решал на первом курсе пачками, лет восемь назад. Сейчас пришлось загуглить как называются правила и законы по которым это все упращается, хотя без названий правил их правильно применил при беглом осмотре кода.
Могу предположить, что, наоборот, сначала была только левая половина выражения, потом стали искать баг и поняли, что ещё в одной ситуации нужно возвращать true, и добавили эту ситуацию в виде правой половины.
Вот вы смеетесь, но у меня был реальный случай, когда компилятор при любых настройках оптимизации считал, что код после некоего условия никогда не выполнится и в целях экономии выкидывал его из файла. Пришлось писать подобный костыль.
Comments 17
Reply
Я такие решал на первом курсе пачками, лет восемь назад. Сейчас пришлось загуглить как называются правила и законы по которым это все упращается, хотя без названий правил их правильно применил при беглом осмотре кода.
Reply
Reply
Думаю просто лог хода мысли автора.
Reply
Reply
Reply
Reply
Reply
Reply
Потом подобные фишки выкидывал AVR GNU C.
Каждый раз дело доходило до родимчика, когда программа отказывалась выполнять некоторые действия в живом виде, но прекрасно это делала под отладчиком.
Reply
Reply
( ... )
Reply
Leave a comment