ATNEL tech-forum
https://forum.atnel.pl/

preprocesor zakres widoczności #define
https://forum.atnel.pl/topic20839.html
Strona 1 z 1

Autor:  JarekB [ 6 cze 2018, o 13:35 ]
Tytuł:  preprocesor zakres widoczności #define

Witajcie nie bardzo wiem jak to rozumieć
Zrobiłem tak:

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


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


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


Gdy #define debug 1 jest w pliku main.c to kopilator "widzi" tylko że ma odwołać się do funkcyjki
natomiast w ciele tej funkcji nie widzi już że jest zdefiniowany debug
Gdy jednak #define jest w pliku defi.h to staje się to jakby globalne main.c widzi i defi.c też.

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


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


Może ktoś powiedzieć jak zmusić kompilator żeby widział w plikach .h to co zdefiniowane w main.c?
Wczoraj oglądałem BB ale rozwiązania nie znalazłem

Autor:  Marhef [ 6 cze 2018, o 13:43 ]
Tytuł:  Re: preprocesor zakres widoczności #define

Wpisać #define przed #include
Był dziś podobny wątek z podobnym pytaniem. Przy kompilowaniu programu w miejscu, w którym masz #include zostaje wstawiony załączany plik. Więc jeśli #define masz po #include, to w pliku, który dołączasz do projektu nie będzie widoczne to, co masz w #define

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/