Partager via


Avertissement C28300

<>parameter_name : opérandes d’expression de types incompatibles pour l’opérateur <operator_name>

Cet avertissement déclenche une annotation SAL contient une expression contenant des types incompatibles.

Exemple

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++)
  {
    //...
  }
}

Dans l’exemple précédent, le développeur a oublié d’accéder à la variable membre appropriée. Dans d’autres cas, vous devrez peut-être corriger l’erreur avec un cast explicite.

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