-
Data: 2021-11-18 21:02:19
Temat: Re: AVR po latach
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 18/11/2021 20:35, Mateusz Viste wrote:
>> Dokładnie to oferujesz. Mówisz: "ale uważaj, przed każdym wyjściem z
>> funkcji musisz zawołać goto". Ja tego nie mówie. Samo prawidłowo
>> zawoła się to, co ma się zawołać, nie muszę żyć w ciągłym strachu,
>> mam 1 miejsce a nie 30, do popełnienia błedu.
> Masz 30 miejsc wyjścia z funkcji? No, to faktycznie przykładny kod.
Prawidłowe założenie brzmi: masz N wyjśc z funkcji. Zakładanie że "N
jest małe i sobie jakoś poradzimy" jest absurdalnie niebezpiecznie.
>> muszę się martwić i mam gwarantowane wywołanie sei(), Ty musisz się
>> męczyć i przeglądać kod, czy ktoś nie zapomniał zawołać goto.
> #define return goto gameover
Wylatujesz za drzwi nie tylko z kopniakiem, ale jeszcze z wilczym
biletem na pracę w IT.
> albo
> static void func_internal() {
> [...]
> }
> void func() {
> _disable();
> func_internal();
> _enable();
> }
Wlasnie napisałeś kiepski, ale emulator RAII. I po co było bredzić o goto?
> Wskazuję tylko, że innowacja którą przedstawiasz jest bardzo dyskusyjna.
To nie jest innowacja, tylko codzienność pracy programisty C++.
> I nie jest to z mojej strony krytyka C++ (którego znam słabo)
Widzę.
>, tylko
> podanego przykładu.
Podany przykład jest uproszczony na potrzeby usenetu. Jeśli nie widzisz
abstrakcyjnie zastosowania RAII, ale widzisz przykład włączenia przerwań
jako jedyne zastosowanie, to nic nie poradzę.
> Zapytałem o jakiś poważniejszy przykład, ale
> wolałeś się obrazić.
Ja się nie obrażam, mnie w ogóle ciezko obrazić.
Poważniejszy przykład mogę podrzucić jeśli chcesz, ale czy aby na pewno
pojmiesz o co chodzi? Sprawdźmy jakiś trywialny:
char value = cast_with_range_check< char >( intValue );
W kodzie produkcyjnym nic się nie zmienia, w kodzie dla unit testów masz
tam w środku zaawansowane sprawdzanie czy wartość mieści się w zakresie
typu.
>> Wiec albo chcesz mieć szambo, jak proponujesz, albo automatyzację. I
>> tak, nie da się tego zrobic w C.
> Patrz wyżej.
Wyżej napisałes emulację RAII. I napisałeś ja w zasadzie tylko po to aby
nie użyć C++, ale użyć RAII. Troche żałosne.
Mam kolegę, głeboko wierzącego w wyższosć C nas wszystkim, w którego
kodzie napotkałem prawie kompletną emulację obiektowości, wliczając
tablice wirtualne, na C i z kupą bugów. Zapytany o to po ch... to pisać
od zera, skoro to samo ma w C++, obraził się.
Napisałeś kiepski emualtor RAII tylko po to aby nie używać RAII. Widzę
podobieństwa między tymi sytuacjami.
>> Tak. Ja inwestuje raz. Kod taki (o podobnej funkcjonalnosci)
>> napisałem już kilka razy, komercyjnie. Za każdym razem używałem go w
>> setkach, jak nie tysiącach miejsc. Więc ja zapłaciłem raz, a dobrze.
> No fajnie, ale to też nie ma nic wspólnego z C++.
Kod sprawdzający statycznie flagi przekazywane do rejestrów sprzetowych?
Ma bardzo dużo.
>> Pisałeś kiedyś coś więcej, niż hello world?
> Już któryś raz zamiast pokazać kod stosujesz argumenty ad personam.
Kodu Ci nie pokaże, bo został sprzedany i nie jest moją własnościa.
Musiałbym napisac go ponownie ale mi się najzwyczajneij nie chce,
ponieważ nigdy go nie użyjesz. A udowanianie oczywistości nie jest tego
warte.
> To
> świadczy zarówno o tobie, jak i o idei którą tak zaciekle bronisz.
Ja tu bronie jakiejś idei? Robisz gówniany kod na goto, który świadczy o
zerowej wiedzy z zakresu bezpieczeństwa kodu i to w imię "Łojezu, nie
wolno używać C++, bo przyjdzie babajaga i zje!" i to ja czegoś zaciekle
bronię? Żartujesz?
To co, piszesz to zabezpieczneie przed podaniem złej flagi do uartu, w C?
Następne wpisy z tego wątku
- 18.11.21 21:25 a...@m...uni.wroc.pl
- 18.11.21 21:43 Mirek
- 18.11.21 21:47 Mateusz Viste
- 18.11.21 22:06 heby
- 19.11.21 08:57 Mateusz Viste
- 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
Najnowsze wątki z tej grupy
- Zasilanie własnych konstrukcji przez PoE
- Jak działa domofon?
- Co oni mierzą miernikiem
- 40 lat OrCAD-a
- Multimetr z bluetooth
- Ciekawa mapka z BTS-ami
- Lampy uliczne LED z kubkiem
- Pęczniejące LiPo
- wyłącznik ścienny
- "Wybitna" inteligencja AI
- test stereo
- Bluetooth stereo
- W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- Weryfikacja myjki ultradźwiękowej
- zasieg radaru
Najnowsze wątki
- 2025-10-14 Żurkotura uczy: Starannie dobieraj miejsca popełnienia "grupy czynów" bo ci sąd wybiorą [UE-poseł Braun]
- 2025-10-14 Karalność kibiców z RP3 za okrzyki "jak Tusk opisał" na meczu na wyjeździe [Kowno/Litwa]
- 2025-10-13 Reżim Talibów w Afganistanie zakazał kobietom: pracy w większości zawodów, studiowania, nauki w szkołach średnich i podstawowych!!!
- 2025-10-13 Państwowy Zamek Królewski w Warszawie wyegzekwował państwowy indeks ksiąg zakazanych?
- 2025-10-13 Podpierdolone ziemiaki
- 2025-10-13 Android na wirtualnej maszynie
- 2025-10-13 Pytanie prawne: Czym Bąkiewicz przekroczył karalność Sikorskiego za "Czas dorżnąć watachy"?
- 2025-10-13 Poznań => Dyspozytor Międzynarodowy <=
- 2025-10-13 Czy poseł Sterczewski (KO) przekroczył PRAWO? [min. KosiMysz (PSL)/Śp. sierżant]
- 2025-10-13 Warszawa => Engineering Manager <=
- 2025-10-13 Białystok => Delphi Programmer <=
- 2025-10-13 Warszawa => Senior Microsoft Dynamics 365 Business Central Konsultant
- 2025-10-13 Wpłaty anonimowe nie są darowizną
- 2025-10-12 Zasilanie własnych konstrukcji przez PoE
- 2025-10-12 Komunistyczna Partia Polski ciągle niezdelegalizowana (dzięki Żurkowi/Tuskowi) [TK]