komische union-benutzung



  • Ich hab jetzt mehrmal (sinngemäß) folgenden code gesehen:

    struct bitfield
    {
        unsigned:15 a;
        unsigned:15 b;
        unsigned:2 c;
    };
    
    union u
    {
        bitfield;
        unsigned raw;
    };
    
    bool mach_was(u a)
    {
        u b;
        b.raw=a.raw;
        return b.b&BIT_MASK;
    };
    

    Was soll die Zeile b.raw=a.raw; ? (ich meine, warum nicht a.b&BIT_MASK zurückgeben?)



  • Vielleicht glaubt der Autor ja, dass Operator & die Operanden verändert. Wäre nicht das erste mal. Was im Beispiel aber in doppelter Hinsicht Unsinn ist.


Anmelden zum Antworten