Union member positions?

ag0aep6g anonymous at example.com
Tue Aug 17 13:57:52 UTC 2021


On 17.08.21 15:46, z wrote:
> Is it possible to set a "position" on a union member? or is there is a 
> language-integrated equivalent?
> For example, to get access to each byte in an unsigned integer while 
> still supporting the original type.
> ```D
> ///a single uint that would be accessed as two ushort, or four separate 
> ubyte
> union UnionExample{
> uint EAX;
> 
> //upper
> ushort EAHX;
> 
> ubyte EAHH;
> ubyte EAHL;
> 
> //lower
> ushort EALX;
> 
> ubyte EALH;
> ubyte EALL;
> }
> ```
> Thanks.

union UnionExample
{
     uint EAX;
     struct
     {
         union // upper
         {
             ushort EAHX;
             struct
             {
                 ubyte EAHH;
                 ubyte EAHL;
             }
         }
         union // lower
         {
             ushort EALX;
             struct
             {
                 ubyte EALH;
                 ubyte EALL;
             }
         }
     }
}


More information about the Digitalmars-d-learn mailing list