-
Data: 2017-10-24 12:30:21
Temat: Re: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli programatora pralki
Od: Mateusz Viste <m...@w...tell> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- 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
- Głośnik potrzebny
Najnowsze wątki
- 2025-11-24 kolorowy e-paper
- 2025-11-24 Białystok => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-11-24 Białystok => Programista Delphi <=
- 2025-11-24 DRL tylne
- 2025-11-24 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-11-24 Czego mógł się obawiać "niewinny jak Giertych"?
- 2025-11-24 tankuj na MOL
- 2025-11-23 konpederacki debil o fotelikach
- 2025-11-22 Sterownik kotła CO praca PWM
- 2025-11-22 Fwd: Fwd: jesienne paragony grozy
- 2025-11-22 Fwd: jesienne paragony grozy
- 2025-11-22 Fwd: Stopa z gwintem
- 2025-11-22 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-11-22 Warszawa => Solution Architect (Workday) - Legal Systems <=
- 2025-11-22 Warszawa => Senior Cloud Engineer - AWS <=




Ile kosztują tanie mieszkania w polskich metropoliach?