Re: [GD-Windows] using typedef to create aligned types
Brought to you by:
vexxed72
From: Brett B. <res...@ga...> - 2004-12-02 00:07:19
|
Not sure what kind of type Fred is, but Fred and Fred Aligned are the same type, thus the same size. They just _start_ at an aligned location in RAM. If Fred is a struct, your alignment doesn't say anything about the alignment of each element _within_ the struct. If Fred is an element of a struct, then that would effect the size of the struct it is contained within. If you are trying to align data within structs, it's better to pack them nicely and align the struct start address than peppering code with alignments everywhere. There's a presentation about cache issues you might want to check out: http://www.gdconf.com/archives/2003/Ericson_Christer.ppt -Brett ----- Original Message ----- From: "Andras Balogh" <bn...@ma...> To: <gam...@li...> Sent: Thursday, December 02, 2004 7:45 AM Subject: [GD-Windows] using typedef to create aligned types > MSDN says that I can use typedef to make aligned versions of my types, eg: > > typedef __declspec(align(16)) Fred FredAligned16; > > This works when I declare variables, eg: > > Fred fred1; > FredAligned16 fred2; > > fred2 is 16 bytes aligned, while fred1 is not > > But the strange thing is that sizeof(Fred) == sizeof(FredAligned16) is > true, > even though Fred's size is not a multiple of 16 bytes... > > When I declare different types (ie. not using typedef), then the sizeof > will > be different because the aligned type will be padded to the next multiple > of > 16 bytes. > > Is this a bug in the compiler?? > > > > Thanks, > > Andras > > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://productguide.itmanagersjournal.com/ > _______________________________________________ > Gamedevlists-windows mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=555 > |