Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
"Operation": Unsichere Kombination von Typ "Typ" und signiertem Bitfeld des Typs "Typ"
Bemerkungen
Diese Warnung wird erzeugt, wenn ein vorzeichenbehaftetes Bitfeld der Länge 1 mit einer bool -Variablen verglichen wird. Da ein vorzeichenbehaftetes Bitfeld der Länge 1 nur die Werte -1 oder 0 enthalten kann, ist der Vergleich mit einem bool-Wert nicht unproblematisch. Keine Warnungen werden dagegen erzeugt, wenn bool -Werte mit vorzeichenlosen Bitfeldern der Länge 1 verglichen werden, da diese mit bool identisch sind und nur 0 oder 1 enthalten können.
Beispiel
Im folgenden Beispiel wird C4807 generiert:
// C4807.cpp
// compile with: /W1
typedef struct bitfield {
signed mybit : 1;
} mybitfield;
int main() {
mybitfield bf;
bool b = true;
// try..
// int b = true;
bf.mybit = -1;
if (b == bf.mybit) { // C4807
b = false;
}
}