Flag

In der Informatik ist ein Flag ein Wert, der als Signal für eine Funktion oder einen Prozess dient. Der Wert des Flags wird verwendet, um den nächsten Schritt eines Programms zu bestimmen. Flags sind oft binäre Flags, die einen booleschen Wert (wahr oder falsch) enthalten. Allerdings sind nicht alle Flags binär, d. h. sie können einen Wertebereich speichern.

Sie können sich ein binäres Flag wie einen Kegel vorstellen. Wenn er flach liegt, ist es "falsch", aber er steht, dann ist er "wahr". Ein gängiges Beispiel für ein Flag in der Computerprogrammierung ist eine Variable in einer while-Schleife. Die folgende PHP-Schleife wird so lange durchlaufen, bis $flag auf true gesetzt ist.

$flag = false;
$i = 1;
while (!$flag) // stoppt, wenn $flag wahr ist
{
echo "$i, ";
$i++; // $i inkrementieren
if ($i > 10) $flag = true;
}

Der obige Code wird Zahlen (1, 2, 3...) bis 10 ausgeben. Dann bricht die Schleife ab, weil $flag auf true gesetzt wird. Die Verwendung eines Flags in diesem Zusammenhang ist effektiv, aber unnötig. Stattdessen hätte die Bedingung der while-Schleife auch while ($i < 11) statt while (!$flag) lauten können. Dies würde das gleiche Ergebnis liefern und die Variable $flag überflüssig machen. Effizient geschriebene Programme benötigen selten explizite Flags, da oft eine vorhandene Variable innerhalb einer Funktion als Flag verwendet werden kann.

Ein binäres Flag benötigt nur ein Bit, das auf 0 oder 1 gesetzt werden kann. Bytes haben jedoch acht Bits, was bedeutet, dass sieben Bits unbenutzt sind, wenn ein einzelnes Byte ein binäres Flag speichert. Obwohl ein einzelnes Byte immer noch eine sehr kleine Datenmenge ist, kann ein Programmierer ein einzelnes Byte verwenden, um mehrere binäre Flags zu speichern.

Nicht-binäre Flags

Nicht-binäre Flags verwenden mehrere Bits und können mehr als "ja oder nein" oder "wahr oder falsch" speichern. Diese Typen von Flags benötigen mehr als ein Bit, aber nicht unbedingt ein ganzes Byte. Zum Beispiel können zwei Bits vier mögliche Optionen ergeben.

00 = Option A
01 = Option B
10 = Option C
11 = Option D

Sie können sich ein nicht-binäres Flag als ein Flag mit mehreren Farben vorstellen. Ein Programm kann prüfen, ob 1) das Multi-Bit-Flag gesetzt ist und 2) welchen Wert es enthält. Je nach dem Wert (oder der "Farbe") des Flags fährt das Programm in der entsprechenden Richtung fort.

Stand: 15.12.2020