Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"operation" : osäker blandning av typen "typ" och ett signerat bitfält av typen "typ"
Anmärkningar
Den här varningen genereras när du jämför ett enbits signerat bitfält med en bool variabel. Eftersom ett enbits, signerat bitfält bara kan innehålla värdena -1 eller 0 är det farligt att jämföra det boolmed . Inga varningar genereras om blandning av bool och enbits, osignerade bitfält, eftersom de är identiska med bool och bara kan innehålla 0 eller 1.
Example
I följande exempel genereras C4807:
// 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;
}
}