zahada delky struktury GCC - vyreseno
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Úterý Březen 12 07:54:02 CET 2024
Tak jsem udelal jeste pokus a skutecne to asi zarovnava struktury a
jejich velikosti na 64b. Resenim je pridat 32b vypln pred CRC a je to
vsechno delitelne 8 a v poradku. Dobre vedet ;-)
typedefstruct{
union{
struct{
uint32_tindex; // index of configuration, count of
writes
intgsm_preffered_speed; // module GSM baudrate
chargsm_apn[32]; // module GSM APN
charcar_ident[8]; // car identification
charcar_aeskey[65]; // 256b -> 64 chars hex encoded
app_data_reservation_treservation; // reservation data
int32_tgps_last_latitude; // car last known latitude, *10^7
(GPS_FIXP_MULT)
int32_tgps_last_longitude; // car last known longitude, *10^7
(GPS_FIXP_MULT)
doublex;
doubley;
};
uint8_tba[CFG_DATA_LEN-8];
};
uint32_tpadd64;
uint32_tcrc32;
} app_data_cfg_t;
static_assert(sizeof(app_data_cfg_t) ==CFG_DATA_LEN);
Dne 11.03.2024 v 21:09 Jan Waclawek napsal(a):
> sizeof(
> typedef struct {
> uint8_t a;
> uint8_t b;
> uint16_t c;
> uint32_t d;
> double x;
> };
> ) = 16 takze asi to zarovnanie co ste pisali.
>
> Tak som vyskusal aj
>
> sizeof(
> typedef struct {
> double x;
> uint8_t a;
> uint8_t b;
> uint16_t c;
> uint32_t d;
> };
> ) = 16
>
> Hm.
>
> Ako vravim, ja nepoznam presne tie pravidla propagacie toho zarovanania, a
> ani ich nechcem poznat.
>
> sizeof(
> typedef struct {
> uint8_t a;
> uint8_t b;
> double x;
> uint16_t c;
> uint32_t d;
> };
> ) = 24
>
> Ale to sa dalo cakat. Takze v ramci jedneho struct sa zarovnavaju tie
> premenne na svoju sirku. Mozno ten union v tom ma prsty... mozno nie. Fakt
> netusim.
>
> Ale k tomu gcc je k dispozicii aj ta najkompletnejsia dokumentacia...
> (pozdravujem pravovernych Linuxakov ;-) )
>
> wek
>
>
>
> ----- Original Message ---------------
>> Dekuji za vysvetleni, clovek se stale neco uci... to same se tyka i int64_t?
>>
>> A kdyz budu mit
>>
>> struct {
>> uint8_t a;
>> uint8_t b;
>> uint16_t c;
>> uint32_t d;
>> doube x;
>> }
>>
>> tak to bude na jakych offsetech ? Zatim bych cekal 0, 1, 2, 4, 8
>>
>> A to zarovnani na 8 se pak tyka cele struktury?
>>
>> No budu to muset prozkoumat.
>>
> _______________________________________________
> HW-list mailing list - sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240312/ca6f3619/attachment.htm>
Další informace o konferenci Hw-list