-
Data: 2021-11-19 08:57:19
Temat: Re: AVR po latach
Od: Mateusz Viste <m...@x...invalid> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]2021-11-18 o 20:56 +0100, J.F napisał:
> Jak mam obsluge bledow w funkcji, to sie zaczynaja wyjscia mnozyc.
> Bo bledow moze byc mnostwo - np brak portu, brak prawa dostepu do
> portu, brak odpowiedzi w zalozonym czasie, niezrozumiala odpowiedz,
> zgloszony bład przez urzadzenie na porcie, błędna wartosc.
W tym wypadku też mnogość wyjść może być problemem, bo szybko wychodzą
tego typu rzeczy:
if (!alokuj_bufor()) return(fail);
if (!otworz_port()) {
zwolnij_bufor();
return(fail);
}
if (!napisz_na_port()) {
zwolnij_bufor();
zamknij_port();
return(fail);
}
if (!odbierz_z_portu()) {
zwolnij_bufor();
zamknij_port();
return(fail);
}
i prędzej czy później o czymś zapomnisz. Tzn. może nie ty, ale ja
na pewno. Zamiast tego można w ten sposób:
void *buf = NULL;
int port = 0;
buf = alokuj_bufor();
if (!buf) goto poleglem;
if (!napisz_na_port() goto poleglem;
if (!odbierz_z_portu() goto poleglem;
return(sukces);
poleglem:
if (buf) zwolnij_bufor();
if (port) zamknij_port();
return(fail);
albo, jeśli kto naprawdę uczulony na goto, to całość ubrać w jakąś
niby-pętlę która wykonuje się raz, a wychodzić z niej breakiem... Ale
to już kombinowanie na siłę, aby tylko nie zhańbić się goto przed
pryszczatą młodzieżą.
Mateusz
Następne wpisy z tego wątku
- 19.11.21 09:33 Mateusz Viste
- 19.11.21 09:43 J.F
- 19.11.21 09:44 heby
- 19.11.21 10:01 Mateusz Viste
- 19.11.21 10:18 heby
- 19.11.21 10:53 J.F
- 19.11.21 10:59 Mateusz Viste
- 19.11.21 11:07 Mateusz Viste
- 19.11.21 11:34 Mateusz Viste
- 19.11.21 13:37 Astralny Rębajło
- 19.11.21 17:08 heby
- 19.11.21 20:38 Mateusz Viste
- 19.11.21 21:19 heby
- 19.11.21 21:54 Mateusz Viste
- 19.11.21 22:00 Marek
Najnowsze wątki z tej grupy
- Leżakujące SSD gubią po roku dane
- kolorowy e-paper
- Sterownik kotła CO praca PWM
- Jakie baterie A23 i LR44?
- OLED SSD1306 - degradacja?
- Który symulator AVR jest ,,prawilny"?
- Disk on Module, czym to odczytać?
- Pasta ochronna? Lutownicza?
- zagadka pneumatyczna
- Klip testowy, jak sie to używa
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
Najnowsze wątki
- 2025-12-03 Zegarynka w roku 1950
- 2025-12-03 Zbiegł z miejsca wypadku
- 2025-12-02 logowanie do wifi
- 2025-12-02 przelew przychodzący Alior
- 2025-12-02 Czyli już wolno "likwidować" rozbitków USA? [Wzajemności zasada najświętszą jest]
- 2025-12-01 #motodziennik 356 - 3.0TDI wraca, Tesla z PRZYCISKAMI, Fiat 500 z ceną, OPŁATA DROGOWA od ELEKTRYKÓW
- 2025-12-01 Białystok => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Se
- 2025-12-01 Białystok => Dynamics 365 Commerce/POS Developer <=
- 2025-12-01 Białystok => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2025-12-01 Białystok => React Developer with knowledge of C++ <=
- 2025-12-01 Poznań => Specjalista ds. Marketingu Online (PPC) <=
- 2025-12-01 Białystok => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-01 Warszawa => Fullstack PHP Developer <=
- 2025-12-01 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-12-01 Wrocław => Programista React ze znajomością C++ <=




Ile kosztują tanie mieszkania w polskich metropoliach?