-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
blin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt
-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "J.F." <j...@p...onet.pl>
Subject: Re: [Arduino] Switch... case
Newsgroups: pl.misc.elektronika
User-Agent: 40tude_Dialog/2.0.15.1pl
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 8bit
References: <ppuu8j$ahb$1$michal@news.chmurka.net>
<5bc3158f$0$14313$426a74cc@news.free.fr>
Date: Sun, 14 Oct 2018 13:58:28 +0200
Message-ID: <j4mcl6fyjuj5$.curmonowf8uq.dlg@40tude.net>
Lines: 41
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 82.143.187.50
X-Trace: 1539518308 unt-rea-a-02.news.neostrada.pl 506 82.143.187.50:55430
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.misc.elektronika:737459
[ ukryj nagłówki ]Dnia 14 Oct 2018 10:08:15 GMT, Mateusz Viste napisał(a):
> On Sun, 14 Oct 2018 09:20:37 +0100, Michal M. Lechanski wrote:
>> switch ... case dopuszcza tylko dane typu int i char, mnie wygodnie by
>> było użyć String.
>> Czy istnieje podobna funkcja pozwalająca operować na danych typu string?
>> Dziękuję za sugestie.
>> P.S. Wiem że mogę użyć if..else.
>
> Mi w podobnych sytuacjach zdarzało się użyć kilku rozwiązań:
>
> - parsowanie stringa by przydzielić mu stosownego enuma, i następnie
> switch() na enumie.
Switch z int ma te zalete, ze kompilator moze tablice skokow zrobic.
A jak parsujesz, to czy jest zysk, czy tylko strata ?
Parsowac mozna algorytmem binarnym, w if'ach to nieco trudniejsze,
ale mozna je optymalnie ustawic.
> - kiedy stringi można rozróżnić po pierwszych 4 znakach, to zwyczajny cast
> do uint32_t
A potem unicode sie trafi :-)
Tu z kolei kompilator nie moze tablicy skokow ... albo nie bedzie sie
ograniczal, 100MB sobie wygeneruje :-)
> - na podstawie ciągu znaków wyliczam crc32, i następnie z tej wartości
> korzystam by rozpoznać jaka była (domniemana) zawartość stringa
Metoda hash ... znana, stosowana, patrz wyzej ...
> - ostatecznie męczyć się z if (strcmp()) else if () itd...
I tu by sie przydalo jeszcze miec mniejsze i wieksze, i C troche
zawodzi.
Czy mi sie wydaje, czy w Fortranie taki trojstronny if byl ?
J.
Następne wpisy z tego wątku
- 14.10.18 23:06 Michal M. Lechanski
- 19.10.18 21:27 Mateusz Bogusz
Najnowsze wątki z tej grupy
- 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
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
Najnowsze wątki
- 2025-05-19 Gliwice => Business Development Manager - Network and Network Security
- 2025-05-19 Warszawa => Spedytor Międzynarodowy <=
- 2025-05-19 Lublin => Programista Delphi <=
- 2025-05-19 Szczecin => Key Account Manager IT <=
- 2025-05-19 Wrocław => Controlling systems Consultant <=
- 2025-05-19 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-19 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-05-19 komedia pomyłek kjm
- 2025-05-18 Jak wyborca POWINIEN zareagować na wydanie karty do głosowania bez pieczęci komisji?
- 2025-05-18 Kto tak pięknie gra ?
- 2025-05-18 "Dobre obyczaje"? WTF?!
- 2025-05-18 Zgodnie z prawem, 11-letnia Patrycja może być przesłuchiwana jedynie w obecności matki, a nie psycholoszki
- 2025-05-18 MMSy
- 2025-05-18 Wiceminister "sprawiedliwości" A. Myrcha złamał ciszę wyborczą [rzepa]
- 2025-05-17 Głosowanie na prezydenta mDowód