-
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
- 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
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
- Co może być gorsze od pożaru elektryka?
- daltonizm
- Mały Linux
- Superkondensator. Czy to się uda?
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
Najnowsze wątki
- 2025-11-08 Klip testowy, jak sie to używa
- 2025-11-08 Warszawa => Senior Cloud Engineer - AWS <=
- 2025-11-08 Pewnie za malo zarabial, to sie musial odstresowac
- 2025-11-08 Uszkodzenie na parkingu a odpowiedzialność sprawcy z OC
- 2025-11-08 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-11-08 Gdańsk => Senior Software Developer C++ <=
- 2025-11-08 Uszkodzenie na parkingu a odpowiedzialność sprawcy z OC
- 2025-11-08 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-11-07 Warszawa => International Freight Forwarder <=
- 2025-11-07 Warszawa => C Programmer <=
- 2025-11-07 Warszawa => Starszy Programista C <=
- 2025-11-07 Warszawa => Senior Programmer C <=
- 2025-11-07 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-11-07 Warszawa => Programista C <=
- 2025-11-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=




Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei