Arduino - platnost #define
Jan Waclawek
konfera na efton.sk
Středa Květen 6 15:39:24 CEST 2020
> 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 at prelude.cz>
Date: Wed, 6 May 2020 14:47:22 +0200
To: "HW-news" <hw-list at 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 at list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list