A.....k
A.....k
implicit declaration of function 'usarttransmit' [-Wimplicit-function-declaration]

Jak mnie to w-----a...

Powiecie mi dlaczego? Bo nie wiem i już tracę na to nerwy.

W piliku usart.h jest oczywiście void usart
transmit(uint8_t) itd

W onp.h chcę wywołać tą funkcję.

#programowanie #c-----------t
  • Najlepsze
  • Wszystkie komentarze
A.....k
A.....k
@Vetinari: Dziękuję.

I w ten świetny sposób zrozumiałem jaki jest sens rozbijania plików na c i h nawet jak ma trzy krótkie funkcje. Pozdrawiam i dziękuję za pomoc.
h.....e
h.....e
@Analityk: USART_transmit?
gorfag
@Analityk: A w onp.h masz widoczną w ogóle tą funkcję? Z tego screena to nie wynika. W sensie czy onp.h includuje usart.h ?
A.....k
A.....k
@gorfag: Co znaczy widoczną? Nie rozumiem. Poza tym jeśli do onp.h (lub onp.c) dołączę usart.h to mam multiple definition.
gorfag
Pragma once i powinien sam ogarnąć zależności, jak coś to pomogę za 3h, pisze z telefonu teraz
gorfag
A.....k
A.....k
@gorfag: Spróbuję, to na visualu śmiga więc może ogarnie.
Vetinari
@Analityk: Cała biblioteka jest w pliku .h czy jest też jakiś c/cpp?
A.....k
A.....k
@Vetinari: @gorfag: W ogóle nie wiem co jest nie tak, ale coś jest nie tak jak powinno.

linię (hash)include usart.h zastąpiłem zawartością pliku (nie ma tam pliku c bo jaki sens robić z 12 linijek kodu plik c).

Nadal wywala implict w pliku onp.h ale tym razem działa
Vetinari
@Analityk: Jeżeli masz kod w pliku .h to (przynajmniej u mnie) ani pragma once ani ifndef nie zabezpieczą tego przed wielkorotnym dołączeniem, ale jeżeli kod będzie w pliku .c a definicje w .h, to wtedy kompilator będzie wiedział jak tego użyć.
A.....k
A.....k
@Vetinari: No to ciach, zaraz opisze wyniki.
A.....k
A.....k
@Vetinari: Teraz jest usart.h w dependencies i usart.c dodane do plików .c w projekcie. Nadal pojawia się implict declaration po wywołaniu usart transmit w pliku onp.h

Vetinari
@Analityk: ale dodałeś w onp.h include do usarth?
Vetinari
@Analityk: Nie ma sprawy ;)