-
Data: 2017-04-29 18:19:49
Temat: Re: arduino, początki, inny edytor
Od: "slawek" <s...@h...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Marek" <f...@f...com> napisał w wiadomości grup
dyskusyjnych:a...@n...neos
trada.pl...
> Wypuść powietrze, zastanów się i odpisz w, temacie _konkretnego_ przykładu
> z linka. [ http://www.cprogramming.com/tutorial/goto.html ]
Jeden rzut oka i widać że autor tutoriala robi fundamentalny błąd. Zamiast
po prostu sprawdzać czy jest dobrze (tzn. czy nie ma błędu)... sprawdza czy
jest błąd. Niby to to samo, ale skutki poważne - zwłaszcza że nadużywa
return - biedak musi wywoływać cleanup wiele razy. (Ok, zaraz niedouczeni
koderzy podniosą wrzask, że to nie jeden cleanup, ale wiele różnych. Cóż,
warto sprawdzić czy rzeczywiście? Przecież można sprzątanie napisać tak, aby
działało tak samo dobrze w każdym przypadku, np. free(NULL) jest
bezproblemowe. )
Przy prostszych sprawach wystarczy takie coś bez goto:
int big_function()
{
int success = 0;
/* do some work */
if( !error1 )
{
... /* do some more work */
if( !error2 )
{
... /* do some more work */
if( !error3 )
{
... /* do some more work */
success = 1; }
}
}
/* clean up*/
return success;
}
Przy bardziej poważnych programach można zrobić to nawet ładniej, ale
obawiam się że i tak tego nie zrozumiesz, a zwłaszcza tego gdzie teraz jest
clean-up.
int big_function(Task* list)
{
int success = 1;
while ( *list && ( list->doWork(list) || success = 0 )) list =
list->next;
return success;
}
Następne wpisy z tego wątku
- 29.04.17 21:30 Pcimol
- 30.04.17 01:44 Marek
- 30.04.17 06:36 slawek
- 30.04.17 10:26 Marek
- 30.04.17 12:57 slawek
- 30.04.17 13:40 slawek
- 30.04.17 19:21 Janusz
- 30.04.17 19:51 HF5BS
- 01.05.17 13:57 Janusz
- 01.05.17 17:26 HF5BS
- 02.05.17 08:35 slawek
- 02.05.17 15:23 HF5BS
- 02.05.17 18:18 slawek
- 02.05.17 18:41 slawek
- 02.05.17 19:28 slawek
Najnowsze wątki z tej grupy
- Jak odróżnić myjki wibrujące od ultradźwiękowych.
- Ledy na wyłączniku czasowym błyskają
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- RCD wybija
- Re: Kompensacja mocy biernej przy 230VAC
- Łożysko ślizgowe - jaki olej
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- Współczesny falomierz
- Zasilacz 7V na szynę DIN
- Waga z legalizacją
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
Najnowsze wątki
- 2025-04-05 Wyrok dożywocia dla Polki
- 2025-04-04 Prezydium Sejmu Tuskiego orzekło: Poseł KO mecenas Roman Giertych NIE jest mordercą (w żadnym sensie tego słowa?)
- 2025-04-04 Reset komóry
- 2025-04-04 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-04-04 Zielonka => Key Account Manager IT <=
- 2025-04-04 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2025-04-04 Warszawa => Mid/Senior IT Recruiter <=
- 2025-04-04 Białystok => NMS System Administrator <=
- 2025-04-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-04-04 Warszawa => Generative AI Engineer <=
- 2025-04-04 Warszawa => Gen AI Engineer <=
- 2025-04-04 Warszawa => Senior Programmer C <=
- 2025-04-04 Jak odróżnić myjki wibrujące od ultradźwiękowych.
- 2025-04-03 Ledy na wyłączniku czasowym błyskają
- 2025-04-03 Mapy w android-auto