From: bobduff@world.std.com (Robert A Duff)
Subject: Re: Rules for Representation of Subtypes
Date: 1996/09/23
Date: 1996-09-23T00:00:00+00:00 [thread overview]
Message-ID: <Dy78qJ.MDr@world.std.com> (raw)
In-Reply-To: mheaney-ya023080002209961353500001@news.ni.net
In article <mheaney-ya023080002209961353500001@news.ni.net>,
Matthew Heaney <mheaney@ni.net> wrote:
>I've always been curious about the rules for representation of subtypes.
>For example, if I make a declaration like this:
>
> A_Small_Integer : Integer range 0 .. 255; -- assume type Integer is 4 bytes
>
>then is an implementation allowed to use fewer than 4 bytes to represent
>A_Small_Integer?
Yes.
>Suppose I'm on a Unix system and I do this
>
> read (fd, A_Small_Integer'Address, 4);
>
>If the representation of A_Small_Integer is only 1 byte, then obviously I'm
>in trouble. Am I required to specify the size of objects?
Well, you could. But a better solution is to always say "aliased" when
you have a variable you want to take 'Address of. Aliased variables
will generally be represented the same way, for all variables of the
type.
Also, the number 4 is questionable. What are you trying to do? Read 4
bytes of data? Well in that case, you want to make sure the target
variable is 4 bytes (which your code doesn't do). Or are you trying to
read however-many-bytes it takes to fill up A_Small_Integer? In that
case, you should be asking for that number of bytes, not 4 bytes. (You
can calculate it based on 'Size, which, unfortunately, is in bits.)
> A_Small_Integer : Integer range 0 .. 255;
> for A_Small_Integer'Size use 32; -- required?
That will make it the right size. But if you read 4 non-zero bytes,
your program will be erroneous.
- Bob
next prev parent reply other threads:[~1996-09-23 0:00 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-09-22 0:00 Rules for Representation of Subtypes Matthew Heaney
1996-09-23 0:00 ` Robert A Duff [this message]
1996-09-24 0:00 ` Matthew Heaney
1996-09-26 0:00 ` Robert A Duff
1996-09-26 0:00 ` Larry Kilgallen
1996-09-27 0:00 ` Robert A Duff
1996-09-27 0:00 ` Mark A Biggar
1996-09-30 0:00 ` Robert A Duff
1996-10-01 0:00 ` Larry Kilgallen
1996-10-01 0:00 ` Samuel Tardieu
1996-10-01 0:00 ` Valid Attribute and Unchecked Conversion Matthew Heaney
1996-10-02 0:00 ` Robert A Duff
1996-10-04 0:00 ` Keith Thompson
1996-10-04 0:00 ` Robert A Duff
1996-10-04 0:00 ` Robert Dewar
1996-10-11 0:00 ` Norman H. Cohen
1996-10-12 0:00 ` Robert Dewar
1996-10-06 0:00 ` Keith Thompson
1996-10-07 0:00 ` Robert Dewar
1996-10-09 0:00 ` Keith Thompson
1996-10-07 0:00 ` Ken Garlington
1996-10-08 0:00 ` Alan Brain
1996-10-04 0:00 ` Matthew Heaney
1996-10-07 0:00 ` Robert Dewar
1996-10-09 0:00 ` Keith Thompson
1996-10-07 0:00 ` Robert Dewar
1996-10-10 0:00 ` Ken Garlington
1996-10-11 0:00 ` Robert Dewar
1996-10-14 0:00 ` Keith Thompson
1996-10-14 0:00 ` Ken Garlington
1996-10-07 0:00 ` Kenneth Almquist
1996-10-01 0:00 ` Rules for Representation of Subtypes Ken Garlington
1996-10-01 0:00 ` Robert A Duff
1996-09-28 0:00 ` Larry Kilgallen
1996-09-29 0:00 ` Robert A Duff
1996-09-29 0:00 ` Larry Kilgallen
1996-09-29 0:00 ` Matthew Heaney
1996-09-30 0:00 ` Robert A Duff
1996-10-01 0:00 ` Ken Garlington
1996-10-02 0:00 ` Robert A Duff
1996-10-02 0:00 ` Ken Garlington
1996-10-06 0:00 ` Robert Dewar
1996-09-29 0:00 ` Matthew Heaney
1996-09-30 0:00 ` Robert A Duff
1996-09-30 0:00 ` Robert Dewar
1996-09-30 0:00 ` Matthew Heaney
1996-10-03 0:00 ` Robert Dewar
1996-10-02 0:00 ` Valid Attribute and Unchecked Conversion Robert I. Eachus
1996-10-02 0:00 ` Matthew Heaney
1996-10-02 0:00 ` George Haddad
1996-10-03 0:00 ` John Herro
1996-10-04 0:00 ` Karl Cooper {46901}
1996-10-07 0:00 ` Mark A Biggar
1996-10-08 0:00 ` Robert Dewar
1996-10-05 0:00 ` Robert Dewar
1996-10-06 0:00 ` Keith Thompson
1996-10-14 0:00 ` Robert A Duff
1996-09-27 0:00 ` Rules for Representation of Subtypes Matthew Heaney
1996-09-27 0:00 ` Robert A Duff
1996-09-23 0:00 ` David C. Hoos, Sr.
1996-09-23 0:00 ` Samuel T. Harris
1996-09-26 0:00 ` David C. Hoos, Sr.
1996-09-23 0:00 ` Robert A Duff
1996-09-24 0:00 ` Robert Dewar
1996-09-24 0:00 ` Robert Dewar
1996-09-26 0:00 ` Keith Thompson
1996-09-26 0:00 ` Matthew Heaney
1996-09-27 0:00 ` Robert Dewar
1996-09-27 0:00 ` Robert A Duff
1996-09-27 0:00 ` Robert Dewar
1996-09-27 0:00 ` Robert A Duff
-- strict thread matches above, loose matches on Subject: below --
1996-09-28 0:00 Robert Dewar
1996-09-29 0:00 ` Robert A Duff
1996-09-29 0:00 ` Matthew Heaney
1996-09-29 0:00 ` Robert Dewar
1996-09-30 0:00 ` Art Schwarz
1996-09-30 0:00 ` Robert A Duff
1996-10-01 0:00 ` Larry Kilgallen
1996-10-01 0:00 ` Brian R. Hanson
1996-10-01 0:00 ` Robert A Duff
1996-09-28 0:00 Robert Dewar
1996-09-30 0:00 ` Keith Thompson
1996-09-28 0:00 Robert Dewar
1996-09-29 0:00 ` Robert A Duff
1996-09-29 0:00 ` Matthew Heaney
1996-10-02 0:00 Franco Mazzanti
1996-10-03 0:00 ` Robert A Duff
1996-10-03 0:00 Franco Mazzanti
1996-10-03 0:00 ` Robert A Duff
1996-10-10 0:00 W. Wesley Groleau (Wes)
1996-10-10 0:00 ` Robert Dewar
1996-10-11 0:00 ` Ken Garlington
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox