dotaz - arduino
Miroslav Mraz
mrazik na volny.cz
Pondělí Únor 22 11:01:30 CET 2021
Já to tak trochu chápu. Když vidím jaké dotazy třeba právě zde padají
ohledně čistého C a uvědomím si o kolik je C++ komplikovanější, nedivím
se. Třeba už jen ty statické konstruktory - musíte rozumět tomu, jak to
v bare-metal funguje - kdy a jak je zavolat a uvědomit si, že
mechanismus volání může všelijak změnit pořadí jejich volání. A je to
také závislé na překladači - každý to může dělat trochu jinak. A opravdu
jinak to dělá g++ a jinak clang ačkoli jsou si velmi podobné.
Striktní typová kontrola může také leckoho odradit, to co v čistém C
maximálně vyhodí varování, vás v C++ dále prostě nepustí.
Na druhou stranu pokud do toho alespoň trochu proniknete má C++ spoustu
velice užitečných vychytávek, které hodně usnadňují práci a hlavně není
tolik potřeba používat metodu copy-paste, kód lze většinou poskládat ze
tříd, které jste už někdy dříve napsali a celkem nebývá potřeba do nich
nějak masivněji zasahovat.
Je možné a užitečné vytvářet instance objektů přímo na zásobníku - v
mnoha případech to může podstatně ušetřit využití RAM, bohužel pak
nemáte dobrý přehled o využití paměti při překladu a je dobré zásobník
nějakým způsobem analyzovat přímo v run-time. Tohle je sice v čistém C
možné také, ale teprve v C++ se to dá použít hezky čitelně a efektivně.
Ano, vytváření objektů na haldě se také vyhýbám jak čert kříži, většinou
to jde nějak jednoduše obejít.
Mrazík
Dne 22. 02. 21 v 9:32 Pavel Brychta napsal(a):
> Ano, občas zaznamenám jakýsi abstraktní odpor k C++ na MCU, ale nikdy
> jsem nedostal konkrétní odpověď na to, co vlastně vadí. Pokud vím, co
> dělám (opět to je o znalostech) a používám jen statické konstruktory,
> tak v tom nevidím problém. ...
Další informace o konferenci Hw-list