eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaBiblioteka MQTT i dziwny kod w CRe: Biblioteka MQTT i dziwny kod w C
  • Data: 2022-08-09 10:29:31
    Temat: Re: Biblioteka MQTT i dziwny kod w C
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: