-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!news.mixmin.net!proxad.net!feeder1-2.proxad.net!cleanfeed3-a.proxad.net!n
nrp3-2.free.fr!not-for-mail
From: Mateusz Viste <m...@w...tell>
Subject: Re: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli
programatora pralki
Newsgroups: pl.misc.elektronika
References: <osllnb$psp$1@dont-email.me> <59eeec44$0$653$65785112@news.neostrada.pl>
<osmsrd$mk1$1$PiotrGalka@news.chmurka.net>
<osn0pc$c5l$1@node1.news.atman.pl>
<osn2s8$opa$1$PiotrGalka@news.chmurka.net>
User-Agent: Pan/0.141 (Tarzan's Death; 168b179 git.gnome.org/pan2)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Date: 24 Oct 2017 10:30:21 GMT
Lines: 54
Message-ID: <59ef163d$0$31614$426a34cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 24 Oct 2017 12:30:21 CEST
NNTP-Posting-Host: 82.64.0.151
X-Trace: 1508841021 news-4.free.fr 31614 82.64.0.151:61188
X-Complaints-To: a...@p...net
Xref: news-archive.icm.edu.pl pl.misc.elektronika:725236
[ ukryj nagłówki ]On Tue, 24 Oct 2017 11:58:35 +0200, Piotr Gałka wrote:
> Kiedyś przetestowałem break;break; i OIDP zadziałało dobrze, ale nie
> byłem pewien, czy to przypadek, czy cecha języka więc dołożyłem bool
> który służył tylko do tego aby zewnętrza pętla wiedziała, że wewnętrzna
> każe wyjść.
Raczej przypadek... Albo jakieś dziwne zachowanie kompilatora którego
użyłeś.
ISO-9899-1990 mówi: "6.6.6.3: A break statement terminates execution of
the smallest enclosion switch or iteration statement."
Dlatego więc drugie 'break' w przykładzie który podajesz jest (a
przynajmniej powinno być) martwym kodem.
Prosty test:
int main(void) {
for (;;) {
for (;;) {
break; break;
}
}
return(0);
}
Powyższy program (po kompilacji i uruchomieniu) nigdy się nie kończy. A
mój gcc optymalizuje go to tej postaci :)
.L2:
nop
jmp .L2
GOTO jest faktycznie dość niepopularne w C, i sam mało kiedy mam potrzebę
go użyć, jednak nie zgadzam się z fanatykami którzy twierdzą iż goto to
jakieś największe zło i należy je usunąć z języka.
Jedyna sytuacja którą pamiętam to gdy potrzebowałem wyjść z switch()
zagnieżdżonego w jednej lub dwóch pętlach. Jedno 'goto' pozwoliło domknąć
projekt, zamiast refaktoryzować wszystko kilka dodatkowych dni. Niby
anegdota, ale fajnie mieć pod ręką takie goto 'w razie czego'.
> Kilka lat temu kupiłem sobie ostatnią książkę Stroustrupa o C++.
> Nie przebrnąłem przez całą. Utkwiło mi w pamięci, że według niego jak
> funkcja ma więcej jak 7 linijek to znaczy, że program jest źle napisany.
Też czytałem takie opinie, ale chyba z innego źródła, bo Stroustrupa
przeczytałem tylko wstęp i miałem dość :) Ta reguła siedmiu linijek to
jakiś wymysł nowego pokolenia... Zdarzało mi się miewać takich wśród
moich pracowników. Młodym się chyba nudzi i wymyślają sobie różne zabawy.
A jak trzeba coś konkretnego zrobić to sięgają po zewnętrzne biblioteki
by rozwiązać nawet relatywnie proste sprawy, "bo po co wymyślać na nowo",
a potem projekt nie da się skompilować bo wymaga miliona zależności,
których połowa już nie istnieje lub zmieniła API. Życie.
Mateusz
Następne wpisy z tego wątku
- 24.10.17 12:58 J.F.
- 24.10.17 13:23 Piotr Gałka
- 24.10.17 13:30 Włodzimierz Wojtiuk
- 24.10.17 13:42 Piotr Wyderski
- 24.10.17 13:42 Piotr Gałka
- 24.10.17 13:49 Piotr Wyderski
- 24.10.17 13:52 J.F.
- 24.10.17 14:07 Piotr Gałka
- 24.10.17 14:07 Piotr Wyderski
- 24.10.17 14:12 Piotr Gałka
- 24.10.17 14:17 Piotr Gałka
- 24.10.17 14:27 Piotr Wyderski
- 24.10.17 14:36 Piotr Wyderski
- 24.10.17 14:58 J.F.
- 24.10.17 15:05 Piotr Wyderski
Najnowsze wątki z tej grupy
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
Najnowsze wątki
- 2025-01-27 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-01-27 Warszawa => Java Developer <=
- 2025-01-27 Warszawa => Data Engineer (Tech Lead) <=
- 2025-01-27 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-27 Kto ma PRAWNĄ rację? poseł KO mec. R. Giertych v. mec. B. Lewandowski
- 2025-01-27 Gliwice => IT Expert (Network Systems area) <=
- 2025-01-27 Koszyk okrągły, walec 3x AA, na duże paluszki R6
- 2025-01-27 Warszawa => QA Engineer <=
- 2025-01-27 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-01-27 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-27 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-27 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-27 Kraków => User Experience Designer <=
- 2025-01-27 Kraków => iOS Developer (Swift experience) <=
- 2025-01-26 Trump-2 JUŻ bardzo łaskawy [1_500 ułaskawień skazanych za Bidena za "Kawkę na Kapitolu"]