OT arm-gcc hadanka

Miroslav Šinko sinkomiro na gmail.com
Pondělí Prosinec 29 17:22:27 CET 2014


Ja ten citat povazujem za OK, kazdy clen struktury/unionu lezi na 
adrese, ktora minimalizuje miesto. To ale nic nehovori o tom, ze ak je 
clenom dalsia (vnorena) struktura/union, ze to plati aj pre ich cleny. V 
tom navode je hned aj priklad s vnorenou nezarovnanou strukturou, kde je 
to aj presne takto vysvetlene.

miro

On 29.12.2014 17:06, Milan B. wrote:
>
>> Preco? TBar mas explicitne zarovnany na 1. Co nemas explicitne
>> zarovnane je union, ten bude zarovnavany na 4B. Jeho velkost je dana
>> vacsou polozkou, teda "uint16_t c[3]". 16-bit polozka sama osebe nema
>> byt preco natahovana na 4B, teda velkost c[3] je 6B. Ale union ako
>> celok MUSI byt doplneny paddingom na 4B zarovnanie, tu na 8B. No a v
>> TBar to spolu s "uint16_t a" vyjde na 10B.
>
> Predpokladam, ze v tomto kvize ide o to, ze v dokumentacii sa pise:
> "Specifying this attribute for |struct| and |union| types is equivalent
> to specifying the |packed| attribute on each of the structure or union
> members."... a ono to neplati pre vnorene struct/union, kazdy
> struct/union musi mat svoje atributy - viz
> https://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html
>
> A v dalsom kole sa bude kydat na open source, jeho autorov a dokumentaciu...
>
> -m-
>


Další informace o konferenci Hw-list