Compartir a través de


Advertencia C28300

<>parameter_name: operandos de expresión de tipos incompatibles para el operador <operator_name>

Esta advertencia desencadena una anotación SAL que contiene una expresión con tipos incompatibles.

Ejemplo

union MyUnion
{
  int length;
  //...
};

// Oops, int and MyUnion are not compatible with the + operator.
void f(_In_reads_(10 + value) int *buffer, MyUnion value)
{
  for(int i = 0 ; i < (10 + value.length); i++)
  {
    //...
  }
}

En el ejemplo anterior, el desarrollador olvidó tener acceso a la variable miembro adecuada. En otros casos, es posible que tenga que corregir el error con una conversión explícita.

void f(_In_reads_(10 + value.length) int *buffer, MyUnion value)
{
  for(int i = 0 ; i < (10 + value.length); i++)
  {
    //...
  }
}