egemini napisał(a):
problem w tym że to nie działa
Czy sądzisz że opisywałbym TAK PODSTAWOWY mechanizm w C ... który miałby nie działać ? ...
xor napisał(a):
To co jest w lib.h to *deklaracja* zmiennych, nigdzie nie ma *definicji*. Nic więc dziwnego że kompilator krzyczy. Żeby to zadziałało trzeba zmienne zadeklarować w lib.c (i nie inkludować lib.h w lib.c bo prawdopodobnie kompilator ogłosi błąd, zresztą nawet nie ma po co)
prawie dobrze tzn początek BARDZO DOBRY:
xor napisał(a):
To co jest w lib.h to *deklaracja* zmiennych, nigdzie nie ma *definicji*. Nic więc dziwnego że kompilator krzyczy.
ale dalej to już:
xor napisał(a):
Żeby to zadziałało trzeba zmienne zadeklarować w lib.c
Na pewno nie deklarować a ZDEFINIOWAĆ - ale myślę że kolega się po prostu przejęzyczył tutaj. Bo oczywiście że w lib.c MUSI być najpierw ich DEFINICJA żeby w lib.h mogła działać DEKLARACJA z extern
pokazuję to w bluebooku wyraźnie ale pewnie koledze egemini coś tam umknęło i myślę że teraz się wyjaśni.
krócej mówiąc
lib.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a w lib.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
dlatego tak WAŁKUJĘ w książce żeby czytelnik zrozumiał czym różni się definicja od deklaracji
_________________
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 ]