Arduino - platnost #define

Pavel Kutina hw na prelude.cz
Středa Květen 6 16:05:26 CEST 2020


A v tom je asi to, co nechapu. Vzdyt prece vsechny casti projektu jsou 
odnekud includovane, nebo by aspon mely byt, ne?

V hlavnim souboru mam include nejake knihovny, ta si zase inkluduje mejake 
dalsi a ty zase dalsi vcetne jejich .h), takze ve vysledku to cele visi na 
nejakm strome, ktery zacina v korenu tim hlavnim projektem, takze kdyz prave 
v nem udelam onen #define, tak by na to mel slyset ten preprocesor i u te 
inkludovane knihovny z N-te vetve. Ted takhle jsem si to alespon 
predstavoval... Jen mi to takhle nefunguje :)

Pavel Kutina


----- Original Message ----- 
From: "Jan Waclawek" <konfera na efton.sk>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Wednesday, May 06, 2020 3:39 PM
Subject: Re: Arduino - platnost #define


>> Jak se definice dedi
>
> Podla salickeho prava ;-)
>
> Direktivy preprocesora sa nijako "nededia". Preprocesor je (takmer) len
> jednoduchy textualny procesor, ktory prechadza suborom, a kde uvidi napr.
> #define A B, zapamata si, ze ma nahradit za A B, a ked neskor narazi na A,
> prepise ho na B.
>
> Toto sa deje len v ramci jedneho zdrojoveho textu a len v jednom 
> priechode,
> t.j. #define z jedneho zdrojoveho textu nie je "vidiet" v inom zdrojovom
> texte.
>
> Pritom si ale treba uvedomit, ze v zdrojovom texte mozu byt zahrnute ine
> zdrojove texty pomocou direktivy #include, tie zahrnute zdrojove texty sa
> stavaju pre ucel preprocesora sucastou povodneho zdrojoveho textu.
>
> Dohoda je (a to je naozaj len nepisana dohoda), ze sa takto "zahrnaju" 
> tzv.
> header subory (.h), takze ak chcete aby nejaky #define bol "vidiet" vo
> viacerych zdrojovych (.c) suboroch, tak ho napisete do nejakeho .h suboru
> ktory je #includnuty vo vsetkych dotknutych .c suboroch.
>
> wek
>
>
> ----- Original Message ---------------
>
> Subject: Arduino - platnost #define
>   From: "Pavel Kutina" <hw na prelude.cz>
>   Date: Wed, 6 May 2020 14:47:22 +0200
>     To: "HW-news" <hw-list na list.hw.cz>
>
> Zdravim,
>
> trochu tu valcim s arduinem, mozna spis s C.
>
> Mam tu nejaky bastl, kterym v podstate kopiruju M5Stack, tj., ESP32 s
> prilepenym displejem ILI9341, nic zvlastniho. Protoze chci pouzit puvodni
> M5stack knihovny a nesedi mi displej (otoceni je jinak), tak jsem upravil
> puvodni knihovny pro praci s diplejem, zadrhel je samozrejme v tom, ze pak
> nechodi s originalem.
>
> Chtel jsem do hlavniho souboru zapsat neco jako:
>
> #define ABCD
>
> v knihovnach nasledne
>
> #ifdef ABCD
> ....
> #else
> ....
> #endif
>
> Logicke, jednoduche - lec nefunkcni. Jak se definice dedi a zpracovavaji v
> ramci projektu? V ramci hlavniho kodu natazeneho v IDE to jde, ale v
> knihovnach se to tvari jako nedefinovane, tusi nekdo, kde by mohl byt
> problem? Je dost pravdepodobne, ze neco nechapu, nebo delam blbe...
>
> Diky.
>
> Pavel Kutina
>
>
> -- 
> Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
> https://www.avast.com/antivirus
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 



Další informace o konferenci Hw-list