Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 mar 2026, o 22:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 27 wrz 2015, o 15:13 
Offline
Nowy

Dołączył(a): 21 lip 2015
Posty: 13
Lokalizacja: Północny-Zachód
Pomógł: 2

Witam
Podczas pisania kodu napotkałem problem z rozpoznaniem typy zmiennej w pliku *.h
Otóż mam dwa modułu czas i menu_czas. Pierwszy zawiera podstawowe funkcje do obsługi czasu, drugi jest modułem wyższego poziomu i zawiera funkcje do ustawiania czasu w menu.
Poniżej wyciąg z nich:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

To co otrzymuje w wyniku kompilacji to jest błąd pokazany poniżej. Kompilator ewidentnie nie rozpoznaje typu CZAS_t w pliku menu_czas.h. Pewno trzeba gdzieś dopisać jakiś extern. Tylko jak to zrobić w sposób prawidłowy ?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Przeniesienie funkcji menu_czas_wyswietl (...) do modułu czas problem rozwiązuje. Tylko że ona mi tam za bardzo nie pasuje. Funkcjonalnie bardziej jest w menu_czas, ponieważ służy do wyświetlania czasu na LCD podczas jego ustawiania w menu.

_________________
Jarek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2015, o 16:35 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

Sprawdź to:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kod wstawiaj jako "[syntax=c]" nie "[code]"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2015, o 16:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Przede wszystkim to wróć do Bluebooka (bo widzę że go masz) i poczytaj o podziale projektu na pliki,

Po drugie - skoro masz swój typ CAS_t w pliku czas.h to jakim cudem chcesz żeby on był widziany w pliku menu_czas.h jeśli go tam nie zainkludujesz ?

Jarcio napisał(a):
Przeniesienie funkcji menu_czas_wyswietl (...) do modułu czas problem rozwiązuje.


Jeszcze raz - pamiętaj nowy TYP MUSI być widoczny wszędzie tam gdzie go próbujesz użyć - czyli wszędzie musisz zainkludować plik nagłówkowy w którym tej definicji typu dokonałeś ....

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2015, o 20:58 
Offline
Nowy

Dołączył(a): 21 lip 2015
Posty: 13
Lokalizacja: Północny-Zachód
Pomógł: 2

Doczytałem w BB.
Ponieważ funkcja menu_czas_wyswietl (...) jest funkcją wewnętrzną modułu to nie musi występować w pliku nagłówkowym ponieważ jej nie udostępniamy dla innych modułów.
Podanie jej deklaracji na pliku menu_czas.c rozwiązuje problem.

_________________
Jarek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO