Mail Archives: djgpp/1995/09/29/22:57:21

Comments: Authenticated sender is <digisoft AT eis DOT net DOT au>
From: Paul <digisoft AT eis DOT net DOT au>
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Date: Sat, 30 Sep 1995 12:25:23 +0000
Subject: Re: Actual sizes of structs under djgpp?
Reply-To: digisoft AT eis DOT net DOT au

> This is definitely a newby's question, and I apologize in advance if I
> should have found the answer for myself.
> Struct 1 is a bitfield, COORD, and takes 4 bytes; OK.
> Struct 2 is two COORDS+ two UCHARS and takes 12 bytes not 10; Hmm, maybe
> structs are long-aligned.
> Struct 3 is char[13], 37 UCHAR, 2 shorts and takes 54 bytes; OK - but why?
> 54 is not long-aligned.
> I'm trying to transfer a lot of structures and their information from a
> 68000 machine to a PC and it would help if there was some rule about length
> of structs and their components. It would also help if 86s used a rational
> byte order:-)
> Brian O'Donnell
> TCD Library
> odonnllb AT tcd DOT ie

It's much the same as on the 68000.  The 80x86 chips work better with 
the proper alignment of data structures.  Longs align on 4 byte 
boundaries, chars align on byte boundaries.  I think short's align on 
2 byte boundaries, but I havn't had occasion to check this in a long 

If you design your structures with all of your longs first, then 
words and lastly bytes you should get fairly good alignment.  Of 
course there is something (maybe a pragma ??) that you can use to 
tell gcc not to optimize alignment.

Hope this helps.

Paul Coward               Whenever you find that you are on the side
digisoft AT eis DOT net DOT au       of the majority, it is time to reform.
                                                          Mark Twain

- Raw text -

  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019