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