C - rychly dotaz

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Středa Březen 21 10:17:48 CET 2018


Pravda, takto to funguje ale myslel jsem, ze 4 je implicitni hodnota, 
nebo proc to hodilo tu 64b polozku na konec a nzarovnalo s predchozi? 
Myslel jsem, ze je problem v zarovnani, cekal jsem kdyz uz, ze to treba 
tmLstSms posune o 4B ale nehodi na konec
Budu to nekdy muset trosku prostudovat az bude vic casu...

#pragma pack(push, 4)

typedef struct
{
     uint32_t id;
     union
     {
         struct
         {
             uint8_t ba[SECTOR_FSRECSZ-8];
         };
         struct
         {
             time64_ms tmLastSms;
         };
     };
     uint32_t crc32;
} FLASHFSREC;

#pragma pack(pop)


Dne 21.03.2018 v 10:03 Miroslav Šinko napsal(a):
> Skuste zmenit atribut na packed. Funkcia aligned je mierne ina od
> toho, co chcete dosiahnut.
>
> miro
>
> 2018-03-21 9:55 GMT+01:00 Jaroslav Buchta <jaroslav.buchta na hascomp.cz>:
>> BINGO, to bude ono. Ted otazka, co elegantne s tim...
>> __attribute__ ((aligned (1))) jsem pokusne nacpal vsude (ted neresim, ze by
>> to treba nefungovalo), ale bez efektu.
>>
> _______________________________________________
> 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