c / intermediate
Snippet
Bitweise Flag-Manipulation
Bitweise Operatoren werden verwendet, um mehrere boolesche Flags in einem einzigen Integer zu speichern, was sehr speichereffizient und schnell ist.
snippet.c
1
2
3
4
5
6
7
8
#define READ (1 << 0)#define WRITE (1 << 1)unsigned char permissions = 0;permissions |= READ;if (permissions & READ) {/* logic */}
Erklärung
1
(1 << 0)
Verschiebt das Bit 1 um 0 Positionen nach links, um eine Maske für das erste Bit zu erstellen.
2
permissions |= READ;
Verwendet den ODER-Operator, um das READ-Bit zu setzen, ohne andere Bits zu beeinflussen.
3
permissions & READ
Verwendet den UND-Operator, um zu prücfen, ob das spezifische READ-Bit aktuell gesetzt ist.