Advertencia C6289
Operador incorrecto: la exclusión mutua de
||
siempre es una constante distinta de cero. ¿Tenía intención de utilizar&&
en su lugar?
Comentarios
Esta advertencia indica que en una expresión de prueba se está probando una variable como desigual a dos constantes diferentes. El resultado depende de que cualquiera de las condiciones sea true, pero siempre se evalúa como true.
Este problema suele deberse al uso ||
en lugar de &&
, pero también puede deberse al uso !=
de dónde ==
estaba previsto.
Nombre del análisis de código: MUTUALEXCLUSIONOVERORISTRUE
Ejemplo
El código siguiente genera esta advertencia:
void f(int x)
{
if ((x != 1) || (x != 3))
{
// code
}
}
Para corregir esta advertencia, utilice el código siguiente:
void f(int x)
{
if ((x != 1) && (x != 3))
{
// code
}
}
/* or */
void f(int x)
{
if ((x == 1) || (x == 3))
{
// code
}
}
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de