From: Steve Graegert <graegerts@gmail.com>
To: Glynn Clements <glynn@gclements.plus.com>
Cc: Amit Dang <amit_dang@intersolutions.stpn.soft.net>,
linux-c-programming <linux-c-programming@vger.kernel.org>
Subject: Re: Any pointer to Byte Alignment & Structure Padding?
Date: Fri, 5 Aug 2005 13:31:58 +0200 [thread overview]
Message-ID: <6a00c8d50508050431240c18d2@mail.gmail.com> (raw)
In-Reply-To: <17139.25287.122744.44612@cerise.gclements.plus.com>
On 8/5/05, Glynn Clements <glynn@gclements.plus.com> wrote:
>
> Steve Graegert wrote:
>
> > > long long is likely to be 8-byte aligned on 64-bit systems and 4-byte
> > > aligned on 32-bit systems.
> >
> > Agree. Interestingly, Microsofts VCC (was quite curious, so I did a
> > quick test) aligns long long on an 8-byte boundary resulting in a size
> > of 16 for the structure given above. (Yes it's a 32-bit machine.)
> > Don't know the reason for that, since the ABI for i386 does not
> > mention this case explicitly.
>
> > > Aligment is determined by the granularity of RAM access. E.g. 32-bit
> > > systems tend to have RAM organised as 32-bit words; reading a 32-bit
> > > value which issn't aligned requires reading two adjacent words,
> > > shifting and OR-ing them together to obtain the desired value.
> >
> > Yes, sure, but why would Microsoft's C compiler generate code that
> > results in a fully despensable read operation for the padded word? (I
> > know this is a Linux programming list, but the question seems related
> > to the overall topic of data alignment in memory.)
>
> Maybe for binary compatibility with 64-bit systems? There used to be a
> version of NT for Alpha. Also, compared to gcc, MSVC was quite late at
> adopting C99 features, so x86/64 may have been taken into account when
> "long long" was added.
Good point. Didn't think of that.
> Microsoft tends to pay as much attention to the ABI as the API,
> whereas Unix systems tend to be far less concerned about the ABI. I
> suspect that this is partly because Windows is far less cross-platform
> than Unix, so maintaining a common ABI is a lot less work, and partly
> because of the preference for binary formats on Windows compared to
> textual formats on Unix.
Can't comment on Microsoft's efforts concerning ABI considerations
but, as you indicated, the different peculiarities of ABIs among Unix
systems is definitely a weakness.
Regards
\Steve
--
Steve Graegert <graegerts@gmail.com>
Software Consultancy {C/C++ && Java && .NET}
Mobile: +49 (176) 21248869
Office: +49 (9131) 7126409
next prev parent reply other threads:[~2005-08-05 11:31 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-01 11:43 Any pointer to Byte Alignment & Structure Padding? Amit Dang
[not found] ` <6eee1c40508010514517b5b90@mail.gmail.com>
2005-08-01 12:16 ` Vadiraj
[not found] ` <17134.43470.280296.644313@cerise.gclements.plus.com>
2005-08-02 11:21 ` Vadiraj
2005-08-02 11:40 ` Amit Dang
2005-08-02 16:39 ` Glynn Clements
2005-08-02 17:12 ` Vadiraj
2005-08-03 4:04 ` Amit Dang
[not found] ` <673ac06405080402432d0feda3@mail.gmail.com>
2005-08-04 15:23 ` Vadiraj
2005-08-04 16:28 ` Steve Graegert
2005-08-05 16:51 ` Vadiraj
2005-08-05 4:14 ` Amit Dang
2005-08-05 6:32 ` Steve Graegert
2005-08-05 6:49 ` Amit Dang
2005-08-05 7:09 ` Steve Graegert
2005-08-05 11:19 ` Glynn Clements
2005-08-05 10:15 ` Steve Graegert
2005-08-05 10:53 ` Amit Dang
2005-08-05 11:13 ` Steve Graegert
2005-08-05 11:28 ` Amit Dang
2005-08-05 11:37 ` Steve Graegert
2005-08-05 12:59 ` Glynn Clements
2005-08-05 11:31 ` Steve Graegert [this message]
2005-08-01 12:27 ` Amit Dang
2005-08-01 14:11 ` wwp
[not found] ` <003b01c59715$d3ffef00$9900a8c0@ispl091>
[not found] ` <6a00c8d5050801234267dd0f7f@mail.gmail.com>
[not found] ` <01dd01c5972f$5c3b62a0$9900a8c0@ispl091>
[not found] ` <17135.20687.821822.269575@cerise.gclements.plus.com>
[not found] ` <02c401c59745$2aaa0410$9900a8c0@ispl091>
2005-08-02 11:08 ` Progga
2005-08-02 11:34 ` Amit Dang
2005-08-02 11:32 ` Steve Graegert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6a00c8d50508050431240c18d2@mail.gmail.com \
--to=graegerts@gmail.com \
--cc=amit_dang@intersolutions.stpn.soft.net \
--cc=glynn@gclements.plus.com \
--cc=linux-c-programming@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.