eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaBiblioteka MQTT i dziwny kod w CRe: Biblioteka MQTT i dziwny kod w C
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!newsreader4.netcolog
    ne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.
    ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.p
    l!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl
    .POSTED!not-for-mail
    Date: Tue, 9 Aug 2022 10:29:31 +0200
    MIME-Version: 1.0
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
    Thunderbird/91.12.0
    Subject: Re: Biblioteka MQTT i dziwny kod w C
    Content-Language: pl
    Newsgroups: pl.misc.elektronika
    References: <62f14473$0$544$65785112@news.neostrada.pl>
    <62f1ecee$0$464$65785112@news.neostrada.pl>
    <62f20076$0$566$65785112@news.neostrada.pl>
    <62f21123$0$482$65785112@news.neostrada.pl>
    From: Atlantis <m...@w...pl>
    In-Reply-To: <62f21123$0$482$65785112@news.neostrada.pl>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 22
    Message-ID: <62f21aeb$0$561$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.27.21.205
    X-Trace: 1660033771 unt-rea-b-01.news.neostrada.pl 561 83.27.21.205:52440
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 2413
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:773705
    [ ukryj nagłówki ]

    On 09.08.2022 09:47, Grzegorz Niemirowski wrote:

    > Odwrotnie. Nie jest inicjalizowana bo nie jest statyczna. Inicjalizacja
    > domyślna zmiennych odbywa się raz, przed uruchomieniem main(). Zmienne
    > automatyczne, alokowane na stosie, mają de facto przypadkowe wartości.

    Masz rację, moja pomyłka.
    W ramach eksperymentu usunąłem z kodu wszelkie przypadki zmiennych
    przekazywanych do MQTTReadPacket() przez wskaźnik na pustej liście
    parametrów. Takich sytuacji było dosłownie tylko kilka.
    Najbardziej istotna wydawała się sytuacja, gdzie taka zmienna llen była
    potem wykorzystywana do wyliczania indeksów tablicy MQTTBuffer. Usunąłem
    wszelkie odwołania do tej zmiennej, ustawiłem parametr MQTTReadPacket na
    void i skompilowałem program. Wszystko działa tak jak poprzednio - ani
    lepiej, ani gorzej.
    Wcześniej założyłem, że musi się tam dziać jakaś dziwna "ezoteryczna
    magia" wynikająca ze specyfiki języka i w jakiś niewidoczny w kodzie
    sposób odpowiednia wartość trafia jednak do zmiennej llen i wszystko
    działa jak powinno.
    Być może jednak po prostu w moim przypadki ten "if" nie jest nigdy
    wywoływany, więc program nie wchodził nigdy w tę gałąź i losowe wartości
    ze stosu trafiające do llen nie dawały o sobie znać.

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: