Condividi tramite


Avviso C28300

<>parameter_name: operandi di espressioni di tipi incompatibili per l'operatore <operator_name>

Questo avviso genera un'annotazione SAL contenente un'espressione contenente tipi incompatibili.

Esempio

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

Nell'esempio precedente lo sviluppatore ha dimenticato di accedere alla variabile membro appropriata. In altri casi, potrebbe essere necessario correggere l'errore con un cast esplicito.

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