Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #59532

Re: Alignment requirement of basic types

From James Kuyper <jameskuyper@verizon.net>
Newsgroups comp.lang.c
Subject Re: Alignment requirement of basic types
Date 2015-04-03 13:45 -0400
Organization Self
Message-ID <551ED1A1.8090009@verizon.net> (permalink)
References <mfm5mg$4rp$1@dont-email.me> <551EB3B9.7090206@verizon.net> <slrnmhtj1m.gus.usenet@xargs-spam.com>

Show all headers | View raw


On 04/03/2015 01:21 PM, John Temples wrote:
> On 2015-04-03, James Kuyper <jameskuyper@verizon.net> wrote:
>> C2011 requires that alignments must be powers of 2, no such requirement
>> existed in earlier versions of the C standard. I've no idea whether
>> there's ever been an implementation of C where that wasn't the case.
> 
> I have used 8-bit platforms with C compilers that supported 24-bit
> integer and floating point types.  These platforms had no alignment
> requirements for multi-byte objects, so it was possible to have
> objects aligned on a three-byte boundary.

The C standard defines "alignment" as a "requirement that objects of a
particular type be located on storage boundaries with addresses that are
particular multiples of a byte address" (3.2p1). "No alignment
requirement" is slightly a misnomer - the correct way to say it is that
the  alignment requirement is 1, which is a power of 2.

Having "no alignment requirement" would correspond to allowing the start
of an object of that type to be anywhere, even an irrational fraction of
the way between the start of one byte and the start of the next byte. C
doesn't allow such things. An alignment requirement must be a positive
integer (since C90) and more specifically, "a non-negative integral
power of 2" (since C2011 - 6.2.8p4).

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Alignment requirement of basic types Noob <root@127.0.0.1> - 2015-04-03 15:48 +0200
  Re: Alignment requirement of basic types Tim Prince <tprince@computer.org> - 2015-04-03 10:23 -0400
  Re: Alignment requirement of basic types James Kuyper <jameskuyper@verizon.net> - 2015-04-03 11:37 -0400
    Re: Alignment requirement of basic types John Temples <usenet@xargs-spam.com> - 2015-04-03 17:21 +0000
      Re: Alignment requirement of basic types James Kuyper <jameskuyper@verizon.net> - 2015-04-03 13:45 -0400
        Re: Alignment requirement of basic types Kaz Kylheku <kaz@kylheku.com> - 2015-04-03 18:40 +0000
      Re: Alignment requirement of basic types Keith Thompson <kst-u@mib.org> - 2015-04-03 10:50 -0700
      Re: Alignment requirement of basic types glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-04-03 19:02 +0000
    Re: Alignment requirement of basic types Kaz Kylheku <kaz@kylheku.com> - 2015-04-03 18:01 +0000
  Re: Alignment requirement of basic types Richard Damon <Richard@Damon-Family.org> - 2015-04-03 12:05 -0400
    Re: Alignment requirement of basic types glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-04-03 16:48 +0000
  Re: Alignment requirement of basic types Kaz Kylheku <kaz@kylheku.com> - 2015-04-03 16:46 +0000
    Re: Alignment requirement of basic types Keith Thompson <kst-u@mib.org> - 2015-04-03 11:06 -0700
      Re: Alignment requirement of basic types Robert Wessel <robertwessel2@yahoo.com> - 2015-04-05 22:22 -0500
  Re: Alignment requirement of basic types Waldek Hebisch <hebisch@antispam.uni.wroc.pl> - 2015-04-04 23:15 +0000

csiph-web