enum vs typedef enum

Tomáš Hamouz konfery.tomas.hamouz na seznam.cz
Úterý Září 19 12:08:44 CEST 2023


Pokud je enum součástí struktury, které je sdílená mimo vlastní systém
(typicky přenášena přes sériovou linku), používám buď omezení
velikosti přes bitfield (ale není to pak podle MISRA), a vždy za
definicí struktury assert na její velikost. A v rámci struktury dělám
"ruční" poskládání položek ve vhodném pořadí, aby se negenerovaly
díry, a na konci, pokud je třeba, závěrečnou položku na zarovnání
celé struktury.
Není to ideální, ale běžné nekompatibility v nastavení kompílátoru to
odchytí.

Tomáš



> Presne z dovodu, ze to ma "neurcitu" sirku, pouzivam enum viacmenej len ako
> "generator konstant"; a potom je to jedno, ci s typedef ci bez.

> Ano, pri ladeni mi chyba, ze gdb potom vypisuje len cislo. Vsetko ma svoje
> pre a proti. Mozno to svoje rozhodnutie raz prehodnotim.

> wek


> ----- Original Message ---------------
>>Njn, ale to muze omezit prenositelnost kodu, napr. diky ruznemu 
>>zarovnani a velikosti struktur...
>>V tom C++ to vypada fajn, ale to zase na MCU nepouzivam.
>>
>>Dne 19.09.2023 v 11:40 Tomáš Hamouz napsal(a):
>>> Re: enum vs typedef enum To je věc nastavení kompilátoru. Lze si 
>>> vybrat mezi 32bit a minimální nutnou šířkou.
>>> v GCC -fshort-enums
>>>
>>> Tomáš
>>>
>>>
>>>      Tak ono ani C neprovadi tusim pri prekladu kontrolu typu, takze je to 
>>> spis pro lepsi orientaci. Spis me na tom stve, ze to udela 32b 
>>> promennou tam, kde by stacilo 8.

> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list