Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
'operation': combinazione non affidabile del tipo 'type' e del campo di bit signed del tipo 'type'
Osservazioni:
Questo avviso viene generato quando si confronta un campo di bit signed a un bit con una variabile bool . Poiché un campo di bit signed a un bit può contenere solo il valore -1 o 0, è pericoloso confrontarlo con bool. Non viene generato alcun avviso relativo alla combinazione di campi di bit senza segno di tipo bool e a un bit poiché sono identici a bool e possono contenere solo 0 o 1.
Esempio
L'esempio seguente genera l'errore 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;
}
}