Re: Class Object layout in memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ian,

  I think you meant 2 byte boundary.

corey

On 24 Aug 2005 16:18:51 -0700, Ian Lance Taylor <ian@xxxxxxxx> wrote:
> "Joe Lovelace" <pintose@xxxxxxxxxxx> writes:
> 
> > How does the GNU compiler (2.96 or 3.3 or PPC) layout instances of C++
> > class objects in memory?
> 
> It varies.  For C++ it is mostly described here:
>    http://www.codesourcery.com/cxx-abi/abi.html
> (It says Itanium, but gcc uses it for all targets.)
> 
> > For example,
> > >class CMyClass{
> > private:
> > >int a;
> > >char b;
> > >short c:
> > >};
> > >
> > >CMyClass instance;
> > >
> > > if &instance is 0x1000, would the memory layout be as follows? Or is
> > > it more complex? (Of course the items may be aligned to the
> > > processors alignment boundaries ie 32-bit)
> > >
> > >instance a b c
> > >0x1000 0x1000 0x1004 0x1005
> 
> Typically 'c' would be aligned to a 2 bit boundary, and thus would be
> at address 0x1006.  The precise alignment requirements depend on the
> processor.
> 
> Ian
>


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux