Hogy lehet kiszámolni c-ben hogy pl egy struktúra mennyi helyet foglal?
sszeadod a struct adattagjainak méretét.
Sizeof
"Pedig itt 4 a válasz"
Akkor lesz négy, ha unionba foglalod a három int-et.
Ez 4 lesz, mert int típust adtál meg és ezeknek a bitfieldeknek az értéke kevesebb mint amennyi helyet az int foglal. Itt még a structure padding se számít, az akkor ha több meződ van.
"sszeadod a struct adattagjainak méretét."
{ char x1; int x2; } alakú struct mérete 8, de az adattagjainak összege csak 5, ha a char 1 és az int 4.
Már megint hülyeségeket beszélsz.
9: Te beszélsz hülyeségeket, már megint.
A struktúra mérete általában megegyezik az adattagok méretének összegével. Bizonyos esetekben azonban (optimalizálás sebességre, adatok memóriahatárra való igazítása stb.) „lyukak” keletkezhetnek a struktúra tagjai között. A sizeof operátor alkalmazásával azonban mindig a pontos méretet kapjuk.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!