Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

rs232 - Implicit declaration

m72 16 Kwi 2015 14:36 474 2
  • #1 16 Kwi 2015 14:36
    m72
    Poziom 12  

    Ogólnie to coś działa ale.......
    1. Czemu dla takiego użycia ITOA wyskakują ostrzeżenia ?
    2. Myślałem że jak zdeklaruję wielkość bufora mniejszą niż zmienna np[3] to mi obetnie kawałek wyniku ale tak nie jest, dla czego tak się dzieje ?

    rs232 - Implicit declaration

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 2
  • #2 16 Kwi 2015 17:09
    szelus
    Specjalista - Mikrokontrolery

    ad. 1
    Nie wciągnąłeś stdlib.h, w którym itoa() jest zadeklarowana. "Implicit declaration" to taka właściwość języka C, w którym możesz zawołać niezadeklarowaną funkcję. Kompilator wówczas przyjmie deklarację domyślną (funkcja zwracająca int o niezdefiniowanych argumentach).

    ad. 2
    To jest C, tutaj nic nie dzieje się "automatycznie". Programista musi zadbać o to, aby tablice były wystarczająco duże. Nie ma kontroli indeksów, dostęp poza zadeklarowany rozmiar oznacza zapis/odczyt do pamięci poza obszarem zmiennej/tablicy. W tym przypadku nadpiszesz stos (zmienna jest automatyczna) co zazwyczaj kończy się nieciekawie (zwisy, dziwne zachowanie programu itp).

    0
  • #3 16 Kwi 2015 18:35
    m72
    Poziom 12  

    Ok dzięki, wszystko już gra.

    0