zahada delky struktury GCC
Jan Waclawek
konfera na efton.sk
Pondělí Březen 11 21:09:33 CET 2024
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.
>
Další informace o konferenci Hw-list