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



Teraz jest 22 mar 2026, o 08:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 10 kwi 2016, o 15:29 
Offline
Użytkownik

Dołączył(a): 09 maja 2013
Posty: 36
Pomógł: 0

Witam

Mam problem z użyciem typu wyliczeniowego enum , tak aby jej widoczność miała charakter globalny.

W pliku nagłówkowym deklaruje nowy typ wyliczeniowy

Kod:
extern enum pos_menu;


,a następnie w pliku źródłowym definiuje nowy typ wyliczeniowy

Kod:
enum pos_menu {Ar,Dr,P0,P1,P2,P3,P4,P5,P6,P7,P8,P9};


Po zdefiniowaniu nowego typu pos_menu deklaruje w pliku nagłówkowym nową zmienną pos typu pos_menu
Kod:
extern enum pos_menu pos;


,a następnie definiuje ją w pliku źródłowym

Kod:
enum pos_menu pos=Ar;


Niestety w pozostałych plikach źródłowych zmiennej pos typu pos_menu nie widać.

Pewne jest jedno :) coś źle zrozumiałem lub o czymś zapomniałem i to nie działa :) ale o czym ? :)

Pozdrawiam
Artur



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2016, o 15:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Arturs napisał(a):
... o czymś zapomniałem i to nie działa :) ale o czym ? :)

...a no o tym, że tylko nieliczni na podstawie takiej ilości kodu potrafili powiedzieć: tutaj masz błąd bo...

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2016, o 16:19 
Offline
Moderator
Avatar użytkownika

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

ja tylko podpowiem, że jak definiujesz typ wyliczeniowy to nie traktuj tego jako zmienną bo do tego nie potrzeba pamięci RAM, to jest tylko na potrzeby kompilatora taki typ wyliczeniowy ... więc w tym przypadku nie ma (deklaracji i definicji) jak przy zmiennych ...

Dajesz typ wyliczeniowy w pliku nagłówkowym bez żadnego tam extern i dołączasz ten plik tam gdzie potrzebujesz tego ... np do common.h

_________________
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: 13 kwi 2016, o 16:55 
Offline
Użytkownik

Dołączył(a): 09 maja 2013
Posty: 36
Pomógł: 0

Dziękuje za informację.

Mam teraz na celowniku struktury i nie do końca wiem jakiego zapisu mam użyć, żeby ona miała zasięg globalny.

Czy poniższy zapis jest prawidłowy

Plik nagłówkowy:

Kod:
extern struct test;


, a następnie w pliku źródłowym
Kod:
struct {
uint8_t pole_testowe;
};test



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2016, o 17:11 
Offline
Moderator
Avatar użytkownika

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

Panie ... przede wszystkim polecam ci zacząć od definiowana typów strukturalnych, zobacz sobie tak w ogóle to:

http://mirekk36.blogspot.com/2013/07/st ... adnie.html

_________________
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: 13 kwi 2016, o 17:18 
Offline
Użytkownik

Dołączył(a): 09 maja 2013
Posty: 36
Pomógł: 0

Kod:
struct {
uint8_t pole_testowe;
}test;



Ostatnio edytowano 13 kwi 2016, o 17:35 przez Arturs, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2016, o 17:19 
Offline
Moderator
Avatar użytkownika

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

Jak chcesz - ja polecam zdefiniowane typu .... ale ... rób jak wolisz ;)

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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