Offset mellem fileds af C struct?

K

kukurigu

Guest
Programmering spørgsmål:
Sådan finder du de udlignet mellem de forskellige områder (f.eks mellem 'sats' og' rentee «) uden om et tilfælde af følgende C struct?

struct carrecord

(

CHAR gøre [15];

Svømmerens sats;

int kilometer;

CHAR rentee [25];

) biler [100];

 
Kan være afhængig af optimeringsforslag kode niveauer.

bare en sugestion: Prøv at se de variabler bruger selv simulation eller debugging mode.

hilsen

 
u bør beregne byte nummer, som hver datatype reserve i RAM derefter starte fra struktur begyndelsen punkt med nul derefter tilføje det antal byte, at hver variabel tage i ram.it er meget simpelt.

 
Det er svært ot beregne det i hånden, fordi alingment er compiler afhængige (i det mindste i x86 verden).Men for at gøre det automatisk, kan du bruge en ide fra stddef.h af DJGPP:
# define offsetof (s_type, MBR) ((size_t) & ((s_type *) 0) -> MBR).
Resten er og nem beregning.
Håber det hjælper,
Januar

 
Bare virkelig dårlig kodning, hvad du forsøger at gøre.Vil ikke få dig lejes mange steder.Nemt gøres i samleprocesser selv.

 
jhbbunch wrote:

Bare virkelig dårlig kodning, hvad du forsøger at gøre.
Vil ikke få dig lejes mange steder.
Nemt gøres i samleprocesser selv.
 

Welcome to EDABoard.com

Sponsor

Back
Top