eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika[Arduino] Switch... case › Re: [Arduino] Switch... case
  • 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: