Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
'operation': combinación no segura del tipo 'type' y el campo de bits con signo de tipo 'type'
Observaciones
Esta advertencia se genera al comparar un campo de bits con signo de un bit con una variable bool . Puesto que el campo de bits con signo de un bit solo puede contener los valores -1 o 0, es arriesgado compararlo con bool. No se generan advertencias con la mezcla de bool y campos de bits sin signo de un bit, ya que son idénticas a bool y solo pueden contener 0 o 1.
Ejemplo
En el ejemplo siguiente se genera la advertencia 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;
}
}