-
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
- Dlaczego energia elektryczna jest droga i cały czas drożeje
- twardy dysk stuka
- Oclenie alkalicznych akumulatorów
- Powerbank jednonapieciowy, a trzynapieciowy
- Lustra w maszynie ASML
- DC blocker i buczące toroidy
- Problemy TSMC cd
- Detektor
- Może tutaj się uda: [NTG] Elewacja / dziurawa Churka
- Falownik jednofazowy a żarówka
- Agregat i "legalność" instalacji
- Uziom
- (Ponownie) odkryto, że ładowanie pulsacyjne robi dobrze
- driver led ?
- Długość wtyku zasilającego ?5.5mm
Najnowsze wątki
- 2024-05-04 Lunar Rover był elektrykiem. Ważył 35 kg Zasięg 80 km Na Księżycu w 1971 r.
- 2024-05-04 Marki => ERP Implementer <=
- 2024-05-04 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-05-04 Marki => Wdrożeniowiec ERP <=
- 2024-05-03 Warszawa => Sprzedawca usług rekrutacyjnych <=
- 2024-05-03 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-03 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-03 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-05-03 Rzeszów => UX/UI Designer <=
- 2024-05-03 Giertych przetarł szlak: byli członkowie zarządu Orlenu śledztwa prokuratorskie obserwują z zagranicy
- 2024-05-03 Warszawa => Senior Rust Software Engineer <=
- 2024-05-03 Kraków => UX/UI Designer <=
- 2024-05-03 Warszawa => International freight forwarder <=
- 2024-05-02 Silnik Stirlinga - energia mechaniczna wytwarzana z ciepła bez dostarczania paliwa!
- 2024-05-02 Kraków => Senior .Net Programmer <=