Arduino I/O pin számát hogyan érdemesebb beállítani?
Érdekelne milyen módon érdemes beállítani Arduinon egy bemenet/kimenet pin számát.
Én ezeket a módszereket ismerem:
1,
#define pinNumber 1;
2,
const int pinNumber=1;
Ha jól gondolom a #define-nél a fordító egyszerűen behelyettesíti a pinNumber-öket 1-ekre, tehát minden esetben helyet fog foglalni az 1-es szám memórián. A const int-es megoldásnál viszont egy helyen kerül tárolásra az 1-es szám, és minden pinNumber objektumnál egy memóriacím fog szerepelni, ahol az 1-es található meg.
Melyik az optimálisabb megoldás? Vagy ezt a fordító mindkét esetben felismeri a dolog lényegét, és így optimalizálja a kódot? Létezik jobb megoldás?
Simán ki tudod próbálni, mivel a fordító bájt pontosan kijelzi mennyit használ.
Én már megnéztem így, mindkét esetbe ugyanannyi memóriát használ
Nem a memóriahasználatben lesz a lényeges különbség.
Az első a C-s régi és alacsonyszintű megoldás.
Jól mondod, a preprocesszor mindenhova ész nélkül behelyettesíti a pinNumber helyére az 1-et.
A második a C++-os típus ellenőrzött megoldás.
Mindenképpen az utóbbit érdemes használni, biztonságosabb és egyértelműbb is.
A C-s változat azért kellett, mert C-ben nincs const kulcsszó.
Ennyire nem lehetsz ostoba.
"Const and volatile
These are new in Standard C, although the idea of const has been borrowed from C++"
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!