Kürzlich bin ich auf einige Beispiele von "Flags" in C und C++ gestoßen, und ich verstehe nicht ganz, wie sie funktionieren. irgend Quellcode Nach einem Blick bemerkte ich, dass oft Flagwerten in hexadezimal definiert sind wie die folgenden:Wie funktionieren Flags in C?
FLAG1 = 0x00000001,
FLAG2 = 0x00000010,
Meine intuitive lässt vermuten, dass diese Werte kombiniert werden. Funktionieren Flags, indem alle Flag-Werte zu einem Int kombiniert werden? Wenn ich beide wie FLAG1 | FLAG2
verwendet hätte, wäre das Ergebnis 0x00000011
?
Muss ich Aufzählungen mit Bitversatze erstellen oder kann ich aufsteigend ganze Zahlen wie:
FLAG1 = 1;
FLAG2 = 2;
Vielen Dank das ist sehr einfach, Sie gewinnen. –
* Sie gewinnen * - Wirklich? Wenn eine gute Antwort gepostet wird, würde ich sagen, dass ** jeder ** gewinnt. Und ich * wirklich * hoffe, dass FIRST, SECOND usw. nur schlechte Beispielsnamen sind und kein Vorschlag, diese konstant zu deklarieren und sie wiederzuverwenden. 'x = ZWEITE | FOURTH' ist nicht so lesbar wie 'x = TEXTUREFLAGS_POINTSAMPLE | TEXTUREFLAGS_TRILINEAR'. –
"Sie gewinnen" wie in "Danke" "große Antwort," ich akzeptiere deins. "Ich denke, die Namensgebung wurde angedeutet. –