Flags schreiben? Wie?



  • Hi,

    also ich steh grad vor nem kleinen Problem. Ich will flags in meinem Programm nutzen, doch hab NULL Ahnung, wie ich welche erstelle und benutze?!?!

    Kann mir jemand ne kleine Einführung geben? 🙄

    Schon mal Danke im voraus.

    Gruß,
    Ikari



  • Was genau meinst Du mit Flags ? Wie sollen sie auftreten ?

    Einzeln oder als Kombination ? In einer Long gehalten mit 2 4 8 16 32 etc ?



  • also ich meinte sowas hier:

    myFunction ("einString", MB_FLAG_1 | MB_FLAG_5 | MB_FLAG_10);
    myFunction ("einString", MB_FLAG_4 | MB_FLAG_2 | MB_FLAG_7);
    


  • #define Flag1 0x00000001L
    #define Flag2 0x00000010L
    
    void Flagtesten(int Flag)
    {
     if(Flag & Flag1)
       cout << "Flag1";
     if(Flag & Flag2)
       cout << "Flag2";
    }
    


  • Ahsooo

    So kommt die Verknüpfung zu stande und unten 🤡 steht wie Du sie wieder zerlegen kannst.

    Die Lösung ist 2^n .

    Bit 0 : 1
    Bit 1 : 2
    Bit 2 : 4
    Bit 3 : 8

    Bit 1 und 3 wären dann die Werte 2 + 8 = 10. (bzw. 2 | 😎

    1000
    0010
    ---- -> |
    1010

    0|1
    _____
    0|0|1 -> 0 | 0 = 0 : 0 | 1 = 1
    1|1|1 -> 1 | 0 = 1 : 1 | 1 = 1

    [ Dieser Beitrag wurde am 06.06.2003 um 09:57 Uhr von Knuddlbaer editiert. ]



  • Original erstellt von <C Newbie@work>:
    **```cpp
    #define Flag1 0x00000001L
    #define Flag2 0x00000010L

    Sieht aus wie binär, isses aber nicht (eher Bitverschwendung). So gehts:

    const unsigned Flag1 = 0x1;
    const unsigned Flag2 = 0x2;
    const unsigned Flag3 = 0x4;
    const unsigned Flag4 = 0x8;
    const unsigned Flag5 = 0x10;
    // etc.
    


  • kannst auch bitfelder benutzen, is aber glaube ich eine borland-spezialität.

    cu todo


Anmelden zum Antworten