| www.delorie.com/archives/browse.cgi | search |
| From: | "XtReMe" <xtreme AT x-project DOT demon DOT nl> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: odd sizeof results |
| Date: | Sun, 28 Feb 1999 02:22:21 +0100 |
| Message-ID: | <920164868.21105.0.rover.d4ee0fa5@news.demon.nl> |
| References: | <7at84k$etf$1 AT news5 DOT svr DOT pol DOT co DOT uk> <36D23316 DOT 5506DAC8 AT a DOT crl DOT com> |
| NNTP-Posting-Host: | x-project.demon.nl |
| X-NNTP-Posting-Host: | x-project.demon.nl:212.238.15.165 |
| X-Trace: | news.demon.nl 920164868 rover:21105 NO-IDENT x-project.demon.nl:212.238.15.165 |
| X-Complaints-To: | abuse AT demon DOT net |
| X-Newsreader: | Microsoft Outlook Express 4.72.3110.5 |
| X-MimeOLE: | Produced By Microsoft MimeOLE V4.72.3110.3 |
| Lines: | 46 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
Weiqi Gao heeft geschreven in bericht <36D23316 DOT 5506DAC8 AT a DOT crl DOT com>...
>> "<---------------------------" wrote:
>>
>> I have a structure that contains an unsigned char (typedefed for
>> convenience) and a pointer to the next structure in my list.
>> Because list traversal has been giving some dodgy results I set
>> about checking everything - until I found this...
>>
>> typedef unsigned char number
>>
>> struct number_t
>> {
>> number value;
>> struct number_t *next;
>> };
>>
>> struct number_t test;
>>
>> sizeof(struct number_t) = 8 bytes???
>>
>> yet
>>
>> sizeof(test.value) = 1 and
>> sizeof(test.next) = 4.
>>
>> the last maths book I checked said that 1 + 4 was still five.
>> Any help would be greatly appreciated.
>
>The three extra bytes in the struct is caused by alignment and is
>normal.
>
Yes, but if you want those struct's to be as tiny as possible use the
'__attribute__ ((packed))' attribute. like this :
struct number_t
{
number value __attribute__ ((packed));
struct number_t *next __attribute__ ((packed));
};
But I still find it curious when you define these attributes, and the
struct's
still aren't packed. Has this to do with optimisations or something?
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |