-
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
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
Najnowsze wątki
- 2025-06-19 Gdynia => Sales Executive / KAM <=
- 2025-06-19 Warszawa => IT Business Analyst (projects in the telco sector) <=
- 2025-06-19 Lublin => Programista Delphi <=
- 2025-06-19 Warszawa => Scrum Master <=
- 2025-06-19 Warszawa => Solution Architect <=
- 2025-06-19 Warszawa => Software Solution Architect <=
- 2025-06-19 Zakrzewo => Konsultant SAP HCM <=
- 2025-06-19 Zakrzewo => SAP HCM Consultant <=
- 2025-06-19 Poznań => SAP HCR Consultant <=
- 2025-06-19 6,756,000 car crashes in the United States in 2019 with 36,096 fatalities.
- 2025-06-19 6,756,000 car crashes in the United States in 2019 with 36,096 fatalities.
- 2025-06-18 Poseł KO mecenas Giertych został pouczony o obowiązującym prawie [z SN]
- 2025-06-18 112
- 2025-06-18 Poznań => MLOps Engineer <=
- 2025-06-18 Gdańsk => Mainframe (z/OS, Assembler) Developer <=