аналогичноConst14 писал(а):я вообще проблемы не вижу и не могу понять, в чём Вы её видите
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
аналогичноConst14 писал(а):я вообще проблемы не вижу и не могу понять, в чём Вы её видите
Дык я об этом и сказал: do..while всегда быстрее или такой же как и while(). В простых циклах, когда компилятору удаётся превратить while() в do {} while, то разницы не будет.на целых 2 байта хуже показал себя цикл while
да-да-да. А потом удивляемся кто же пишет всё гавённое тормозящее ПО.весь сыр-бор из-за жалкого jmp, которого иногда может и не быть
Код: Выделить всё
if ((mode == ALARM_ACTIVE) || (mode == ALARM_COMPL))
{
// do something
}
Код: Выделить всё
if ((mode == ALARM_ACTIVE) || (mode == ALARM_COMPL))
{
// do something
}
а я всегда сам придерживался правила и другим советовал: скобки лишними не бывают. тем более что в MISRA вообще запрещается надеяться на приоритеты операторов...Siarzhuk писал(а):Внутренние скобки - лишние
Ну и напрасно. Не стоит идти против своего удобства, всего-лишь по какому-то совету с форума. Тут дело лично каждого. А компилятору - пофиг.Пока_без_кота писал(а):А я уже поудалял
Машинный код для машины, исходный - для человека. Поддерживаю предыдущих ораторов в принципе - скобок много не бывает. Автор или другой человек может читать исходный код и забыть о приоритетах, при беглом осмотре это тоже будет притормаживать внимание; разработчики ныне знают более одного языка программирования, вместо кучи памяток о приоритетах можно просто взять и поставить скобки; программирование => математика и эстетичнее выглядит заключённое в скобке выражение - тешит внутреннего перфекциониста.Внутренние скобки - лишние, поскольку приоритет оператора == равен 7 а у оператора || равен 12.
Ну как же - ускоряется работа компилятора (на несколько μs)Аlex писал(а): Ну а какие плюсы, кроме минусов, от отсутствия "лишних" скобок - мне неведомо
Код: Выделить всё
typedef unsigned char byte;
unsigned char buffer[32];
bit blink,startindk,startindt,pirkor,indik,start_back,start_rele,start_mic,start_pirkor,
start_pirtua,start_gerkon_1,start_gerkon_2,ind_mic,start_ohtik,start_nochnik,start_tt,spark,
t_end,tic,start_timer,t_flag,lustra_on,rele_1,rele_2,rele_3,rele_4,ee,ff,
start_test,t_flag_2,t_end_2,sw_temp;
unsigned char sec,min,hour,day,week,month,year;
unsigned char w,a,b,cc,dreb_0,dreb_1,opros,delayt,ik,alb,alarm_b,alarm_a,bl,ab,ttt,
ind,tpirr,tpirrr,pirkorr,pir_kor,pir_tua,gerkon_1,gerkon_1_ncno,gerkon_2,gerkon_2_ncno,
mic,en_tic_kor,en_tic_tua,counter,test_del,sp,ind_mic_t,start_timer_2,start_tt_2,timer_2,tvvv_2,
en_al,en_al_2,cou,test_count,secur,mode,swit,nag,en_nochnik,time_ohr,aaaa,bbbb,cccc,dddd,eeee,
vb,vvv,shkaf,en_lustra,alarm_r,r,tr,port_1,port_2,port_3,port_4,
tvvv,en_tic_hour,enprom,buzzer,rem_mem,opros_akk,func_count,f_1,start_func,
tpirk,tpirt,delay_kor,timrem,phone,kor_from,kor_to,al,tal,al_0,day_al,day_1_al,
day_2_al,day_3_al,day_4_al,day_5_al,day_6_al,day_7_al,hour_al,min_al,hour_al_1,
hour_al_2,hour_al_3,hour_al_4,hour_al_5,hour_al_6,hour_al_7,min_al_1,min_al_2,
min_al_3,min_al_4,min_al_5,min_al_6,min_al_7,hour_nag_start,min_nag_start,hour_nag_fin,min_nag_fin,
day_nag_start,month_nag_start,year_nag_start,day_nag_fin,month_nag_fin,year_nag_fin,
hour_rem_1,min_rem_1,day_rem_1,month_rem_1,year_rem_1,al_rem_1;
signed char back,countdown,cor,correct,timer_count,tt,tt_2,timer_count_2;
unsigned int temp,temper,mint,maxt,bc,dreb_2,dreb_3,rele,count_mic,count_pirkor,
count_pirtua,count_gerkon_1,ohtik,count_gerkon_2,vc,volt,volter,tnochnik,ttimer,t_count,
end_tt,ttimer_2,t_count_2,end_tt_2,copy_temp,tshkaf,qq,yy,rr,mem,eeppp,func;
eeprom unsigned char eep_day,eep_month,eep_year,eep_week;
eeprom unsigned char eep_pir_kor,eep_pir_tua,eep_gerkon_1,eep_gerkon_1_ncno,eep_mic,eep_gerkon_2,
eep_gerkon_2_ncno,eep_tpirk,eep_tpirt,eep_delay_kor,eep_timrem,eep_en_tic_kor,eep_en_tic_tua,
eep_kor_from,eep_en_nochnik,eep_en_lustra,eep_time_ohr,eep_shkaf,
eep_kor_to,eep_buzzer,eep_phone,eep_enprom,eep_nag,eep_en_tic_hour,eep_al,eep_day_1_al,eep_day_2_al,
eep_day_3_al,eep_day_4_al,eep_day_5_al,eep_day_6_al,eep_day_7_al,eep_min_al_1,eep_hour_al_1,
eep_min_al_2,eep_hour_al_2,eep_min_al_3,eep_hour_al_3,eep_min_al_4,eep_hour_al_4,eep_min_al_5,
eep_hour_al_5,eep_min_al_6,eep_hour_al_6,eep_min_al_7,eep_hour_al_7,eep_min_nag_start,
eep_hour_nag_start,eep_min_nag_fin,eep_hour_nag_fin,eep_day_nag_start,eep_month_nag_start,
eep_year_nag_start,eep_day_nag_fin,eep_month_nag_fin,eep_year_nag_fin,eep_hour_rem_1,eep_min_rem_1,
eep_day_rem_1,eep_month_rem_1,eep_year_rem_1,eep_al_rem_1;
eeprom signed char eep_cor;
eeprom unsigned int eep_count_mic,eep_count_pirkor,eep_count_pirtua,eep_count_gerkon_1,
eep_count_gerkon_2;
Код: Выделить всё
if(
day==eep_day&&week==eep_week&&month==eep_month&&year==eep_year&&
min_al_1==eep_min_al_1&&hour_al_1==eep_hour_al_1&&min_al_2==eep_min_al_2&&hour_al_2==eep_hour_al_2&&
min_al_3==eep_min_al_3&&hour_al_3==eep_hour_al_3&&min_al_4==eep_min_al_4&&hour_al_4==eep_hour_al_4&&
min_al_5==eep_min_al_5&&hour_al_5==eep_hour_al_5&&min_al_6==eep_min_al_6&&hour_al_6==eep_hour_al_6&&
min_al_7==eep_min_al_7&&hour_al_7==eep_hour_al_7&&al==eep_al&&day_1_al==eep_day_1_al&&
day_2_al==eep_day_2_al&&day_3_al==eep_day_3_al&&day_4_al==eep_day_4_al&&day_5_al==eep_day_5_al&&
day_6_al==eep_day_6_al&&day_7_al==eep_day_7_al&&cor==eep_cor&&gerkon_2==eep_gerkon_2&&
pir_tua==eep_pir_tua&&mic==eep_mic&&gerkon_1==eep_gerkon_1&&gerkon_1_ncno==eep_gerkon_1_ncno&&
gerkon_2_ncno==eep_gerkon_2_ncno&&pir_kor==eep_pir_kor&&tpirk==eep_tpirk&&tpirt==eep_tpirt&&
delay_kor==eep_delay_kor&&timrem==eep_timrem&&buzzer==eep_buzzer&&phone==eep_phone&&
kor_from==eep_kor_from&&kor_to==eep_kor_to&&en_tic_hour==eep_en_tic_hour&&
en_tic_kor==eep_en_tic_kor&&en_tic_tua==eep_en_tic_tua&&en_nochnik==eep_en_nochnik&&
en_lustra==eep_en_lustra&&time_ohr==eep_time_ohr&&shkaf==eep_shkaf&&enprom==eep_enprom&&
nag==eep_nag&&hour_nag_start==eep_hour_nag_start&&min_nag_start==eep_min_nag_start&&
hour_nag_fin==eep_hour_nag_fin&&min_nag_fin==eep_min_nag_fin&&
day_nag_start==eep_day_nag_start&&month_nag_start==eep_month_nag_start&&
year_nag_start==eep_year_nag_start&&day_nag_fin==eep_day_nag_fin&&
month_nag_fin==eep_month_nag_fin&&year_nag_fin==eep_year_nag_fin&&hour_rem_1==eep_hour_rem_1&&
min_rem_1==eep_min_rem_1&&day_rem_1==eep_day_rem_1&&month_rem_1==eep_month_rem_1&&
year_rem_1==eep_year_rem_1&&al_rem_1==eep_al_rem_1)
{