enum vs typedef enum

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Úterý Září 19 12:22:04 CEST 2023


Jen pro zajimavost, kontrola velikosti se da udelat uz behem prekladu, i 
kdyz dost krkolome.
Nasel jsem tuto konstrukci, kteroch chapu jen trosku resp. musim vzdycky 
trosku vic premyslet, ale funguje ;-)

     #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 
2*!!(condition)]))
     BUILD_BUG_ON( sizeof(app_data_cfg_t) != CFG_DATA_LEN );



Dne 19.09.2023 v 12:08 Tomáš Hamouz napsal(a):
> 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
> _______________________________________________
> 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