Seltsamer Operator
-
Hallo zusammen,
ich hab gerade beim Debuggen eine seltsamme Operatorenfolge gefunden, die so vom Autor bestimmt nicht beabsichtigt war. Nun wüsste ich aber gerne, was der Compiler mit dem Ganzen anfängt, da er ja weder eine Fehlermeldung noch eine Warnung liefert. Das Ganze sieht in etwa so aus
bool b |= var.meineFunktion(...);
Vielleicht gibts das ja auch wirklich und ich kenns einfach nicht, aber |= hab ich so noch nicht gesehen, und das | war bestimmt nicht beabsichtigt.
Gruss CatDog
-
so wie es da steht, ist es sinnlos.
ansonsten ist a|=b gleichbedeutend mit a=a|b.
-
Allgemein ist das aber nicht sinnlos...
Wenn du zum Beispiel eine Flag-Variable erweitern willst, ist es ganz praktisch.
z. B.:DWORD my_flags = MB_OK; //jetzt nachträglich noch nen flag hinzufügen: my_flags |= MB_ICONERROR;danach sind die Flags dann: MB_OK | MB_ICONERROR