Доброй ночи.
Возник вопрос , на который пока не смог найти ответ .
void loop() {
enc.tick();
sensor_t();
if (((PINA >> 6) & 1) != 1)flg.tagtag = _edit_mas;
if ((!(PINA & 1)) && (flg.tag == _start)) start_car();
if ((!((PINA >> 1) & 1)) && (flg.tag == _proces)) stop_car();
if ((((PINA >> 4) & 1) != 1) && (flg.tag == _select_end)) flg.tag = _select_sort;
if ((minut > 2) && (flg.sec != _zero)) enable_sec();
if ((flg.tag == _proces) && ((flg.tagtag == _yes) || (flg.tagtag == _no) || (flg.tagtag == _cancel))) button_mas();
if (flg.tagtag == _show_cursor) show_cursor(myXY.mas_x);
if ((minut > 2) && (flg.sec != _zero)) enable_sec();
if (flg.tagtag == _edit_mas) edit_mass();
if (flg.tagtag == _input_mas) input_mas();
if (flg.tag == _select_sort) Select();
if (flg.tag == _select_button) getBut(0, MaxCurLine - 1);
if (flg.tag == _select_prof) menu1(infaData.sort);
if (flg.tag == _select_end) getBut(1, SMaxCurLine - 1);
if (flg.tag == _proces) proces();
if (minut > 59) minut = 0;
}
10 и 13 строчка , посчитает ли , компилятор 2 одинаковые строчки поводом для оптимизации, или не обратит внимание… ( варнинг никаких нет)?
Спасибо.
b707
02.Март.2023 22:31:50
2
С какой стати ему оптимизировать, может вам надо исполнить фйнкцию enable_sec()
дважды?
спасибо , решил уточнить…
romansochi:
(((PINA >> 6) & 1) != 1)
С таким трешем без оптимизатора СМЕРТЬ !
Для ответа на вопрос не хватает информации. Что за функции enable_sec
, button_mas
и show_cursor
не знает никто. Как и “что за объект flg”.
Теоретически можно соптимизировать проверку условия, но для этого нужно быть уверенным, что вызываемы по дороге функции не имеют побочных эффектов, что объект flg
не может измениться и т.п. ТС просто задаёт вопросы не понимая вообще ничего, отсюда и вопрос такой.
На С++, в общем случае, нет. В частных случаях, если программист позаботился о такой возможности, может и оптимизировать.
На новых языках с обязательными указаниями изменчивости и времени жизни, типа Rust, почти наверняка оптимизирует. Для того они и созданы.
Как раз хватает информации: сам факт отсутствия информации и есть недостающая информация.
Вам, может, и хватает. Мне - нет.
ua6em
03.Март.2023 11:44:43
10
Петрович! Ты не заметил, что практически на любое высказывание на новом форуме можно рассказать анекдот? )))
Внимательно перечитайте цитату из Зиновьева в посте . Там всё сказано, мне добавить нечего
ua6em
03.Март.2023 12:18:20
12
да я даже под этим подпишусь - " эпоха массового производства посредственности "…
На днях вон слёзно просил DIMAXa почаще радовать нас своими изысками…
kolyn
03.Март.2023 12:37:52
13
Да оно все так. Как в том посте про печатки. Убрал стрелочный вольтметр, поставил китайский показометр. И точнее, и показания читать легче - а не то. Нет теплой ламповости прибора. И ламповость в этом контексте не ругательство или стеб.
С форумом точно так. Да и индекс токийской биржи влияет. Все там, не до форумов.
Поясните плиз, почему?
чем оно хуже if (~PINA & (1<<6))
или Вы имели ввиду , что надо If (!((PINA >> 6) & 1) )
Судя по 2-му сообщению, b707-му тоже хватает.
Осталось поделиться на остроконечников и тупоконечников.
romansochi:
if (~PINA & (1<<6))
И что, по-Вашему, это означает? Можете словами сказать?
b707
03.Март.2023 15:40:04
18
безусловно лучше
Первое выражение хоть какой-то смысл имело, а это :))))
ua6em
03.Март.2023 15:49:24
20
mykaida:
Вставьте его
бакулюм утерян однако )))