C28039
avviso C28039: Il tipo di parametro effettivo <operand> deve corrispondere esattamente al tipo <typename>
Questo avviso viene solitamente visualizzato quando non è stato passato un membro dell'enumerazione a un parametro formale enum, ma può anche essere utilizzato per altri tipi.
Poiché C consente alle enumerazioni di essere utilizzate indifferentemente, e indifferentemente con le costanti, è facile passare il valore enum errato a una funzione senza un errore.
Per i tipi enum, se il tipo di un parametro di enumerazione è annotato con _Enum_is_bitflag_, l'aritmetica viene consentita sul parametro.In caso contrario il parametro deve essere esattamente del tipo corretto.Se una costante è strettamente necessaria, è possibile applicare anche l'avviso C28137.
Questa regola può essere utilizzata anche per altri tipi di parametro; si veda la documentazione della funzione sul motivo per cui i tipi devono corrispondere esattamente.