comp.lang.ada
 help / color / mirror / Atom feed
From: "Stanley R. Allen" <Stanley_R_Allen@raytheon.com>
Subject: Re: Type size vs. actual size difference.
Date: 2000/03/20
Date: 2000-03-20T00:00:00+00:00	[thread overview]
Message-ID: <38D666EC.AB575A49@raytheon.com> (raw)
In-Reply-To: 8b5hhp$pvv1@svlss.lmms.lmco.com

Bruce Detter wrote:
> 
> Using GNAT 3.12 on Win NT 4.0.  We have defined a record that has a length
> of 214 bytes.  The type'Size attribute reports 214, but when we declare a
> variable of the record type (X : Type) the size attribute X'Size reports
> 216.  It appears the actual variable size takes into account adjustments to
> word boundaries (and of course the type'Size attribute can't do this).  Is
> there a preprocessor command or pragma command that will force byte boundary
> alignment so that the type size agrees with the actual size?
> 

I don't think there is a standard way to do this.  On GNAT, there
is an attribute T'Object_Size, which when applied to types will yield
the number of bits that would be used for a variable if declared
"A : T;".  On the old DEC Ada compiler, you could use the attribute
T'Machine_Size, which would do the same thing.  I don't know about
other compilers.

It would be nice if something like T'Object_Size was standard.  In some
cases it's necessary for me to declare a 'dummy' variable of a type
to get this.

-- 
Stanley Allen
mailto:Stanley_R_Allen@raytheon.com




  parent reply	other threads:[~2000-03-20  0:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-03-20  0:00 Type size vs. actual size difference Bruce Detter
2000-03-20  0:00 ` tmoran
2000-03-20  0:00 ` Stanley R. Allen [this message]
2000-03-20  0:00 ` Vladimir Olensky
2000-03-20  0:00   ` Robert Dewar
2000-03-20  0:00     ` Vladimir Olensky
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox