Some quick questions
BCS
ao at pathlink.com
Wed Aug 8 07:25:20 PDT 2007
Reply to Márcio,
> Thanks for all your replies. I have one more quick question: how do I
> access union's members, inside a struct? For example:
>
> ;struct S {
> ; union u {
> ; ubyte b;
> ; uint i;
> ; }
> ;}
> ;S s;
> ;ubyte b = s.u.b; // Error: need 'this' to access member b
> Thanks!
>
;struct S {
; union u {
; ubyte b;
; uint i;
; }
;}
;S s;
;ubyte b = s.u.b; // Error: need 'this' to access member b
The reason that doesn’t work is that the uses of union there is a type deceleration,
not a member declaration. So you get a struct without any content.
option 1 use anonymous unions
;struct S {
; union {
; ubyte b;
; uint i;
; }
;}
;S s;
;ubyte b = s.b;
option 2:
;struct S {
; union U {
; ubyte b;
; uint i;
; }
; U u;
;}
;S s;
;ubyte b = s.u.b;
More information about the Digitalmars-d-learn
mailing list