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