-
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ć.
Następne wpisy z tego wątku
- 09.08.22 10:53 Atlantis
- 09.08.22 19:13 J.F
- 09.08.22 20:38 Atlantis
- 10.08.22 00:06 Atlantis
- 10.08.22 00:13 JDX
- 10.08.22 09:52 J.F
- 10.08.22 09:59 Grzegorz Niemirowski
- 10.08.22 19:25 Atlantis
- 10.08.22 20:41 heby
- 10.08.22 22:06 Marek
- 10.08.22 22:43 Grzegorz Niemirowski
- 10.08.22 23:26 heby
- 12.08.22 11:25 Piotr Gałka
- 16.08.22 13:20 Atlantis
- 17.08.22 18:58 Mirek
Najnowsze wątki z tej grupy
- System operacyjny dla 6800?
- Przyłączenie działki do sieci elektrycznej
- Działalność nierejestrowana/definicja sprzętu elektronicznego/misie i kolejki
- Smukły, długi ściągacz izolacji do kynaru
- rezystor 3 omy 400W
- [newbie] Jaki multimetr za 2-4 stówy?
- szafka sieciowa
- Raspberry Pi 5 + dyski SATA
- lutownica na węgiel
- Znów czary (albo niewiedza) - tym razem fotowoltaika
- Chess
- Vitruvian Man - parts 7-11a
- przeźroczyste koszulki
- Re: Win 10/11 nie lubi OKI
- Programator czasowy TUYA.
Najnowsze wątki
- 2024-05-16 Samo rozładowywanie baterii trakcyjnej w elektryku.
- 2024-05-16 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-05-16 Warszawa => Interactive/Experience Designer <=
- 2024-05-16 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-16 Zabrze => Junior HelpDesk <=
- 2024-05-16 Warszawa => Technical Lead ( (Java Background)) <=
- 2024-05-16 Szczecin => Senior DevOps Engineer <=
- 2024-05-16 Szczecin => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-16 Śledztwo bodnatury "jak wyrok"? ["likwidator" Polskiego Radia donosi]
- 2024-05-16 Citi... zmiany warunków umowy o kartę kredytową Citibank?
- 2024-05-16 prawo jazdy z Nepalu
- 2024-05-15 Mini Netykieta polskich grup i list dyskusyjnych
- 2024-05-15 Warszawa => Key Account Manager <=
- 2024-05-15 Millenium czyli DEBILE bankowości
- 2024-05-15 Warszawa => Frontend Developer - React <=