delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/09/12/12:22:06

From: DavMac AT iname DOT com (Davin McCall)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Generous SIZEOF
Date: Sun, 12 Sep 1999 13:49:27 GMT
Organization: Monash Uni
Lines: 49
Distribution: world
Message-ID: <37dbad8f.30594879@newsserver.cc.monash.edu.au>
References: <SorbN=5UcIH2MGzMvvfmX1yTuevV AT 4ax DOT com>
NNTP-Posting-Host: damcc5.halls.monash.edu.au
X-Trace: towncrier.cc.monash.edu.au 937144164 22898 130.194.198.138 (12 Sep 1999 13:49:24 GMT)
X-Complaints-To: abuse AT monash DOT edu DOT au
NNTP-Posting-Date: 12 Sep 1999 13:49:24 GMT
X-Newsreader: Forte Free Agent 1.1/32.230
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

The compiler is rounding up the size of the structure to the nearest
four byte boundary, so that accesses are more efficient (particularly
when using an array of structures).

If you want to prevent this, declare the structure with attribute
packed eg:

struct CD
{
    char Title[100];
    char Interpreter[100];
    int Year;
    char Live;
} __attribute__((packed));
struct CD All[MAX];

Davin.



On Sun, 12 Sep 1999 13:21:24 +0200, Michael Uplawski
<uplawski AT sulla DOT franken DOT de> wrote:

>Hi.
>
>Why is djgpp (or any compiler) adding 3 bytes of memory, if the sum of
>memory used by a struct is 205 Bytes?
>Okay, as my English is not good enough to describe it completely, here
>is my example:
>-------------------
>#define MAX	450
>
>struct CD
>{
>    char Title[100];
>    char Interpreter[100];
>    int Year;
>    char Live;
>} All[MAX];
>--------------------
>
>The sum of memory used by each variable is 205 Bytes on a
>32bit-system, right? If I use SIZEOF with a pointer to an element of
>the array (or whatever the correct terminology might be, my K&R is in
>German), 208 Bytes are reported.

__________________________________________________________
       *** davmac - sharkin'!! davmac AT iname DOT com ***
my programming page: http://yoyo.cc.monash.edu.au/~davmac/

- Raw text -


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