C28039
aviso C28039: O tipo do real parâmetro <operand> devem corresponder exatamente o tipo de <typename>
Esse aviso geralmente é relatada quando um enum formal não foi passado um membro do enum, mas também pode ser usado para outros tipos.
Porque c permite enums a ser usado de forma intercambiável e alternadamente com constantes, é fácil passar o valor de enum errada para uma função sem um erro.
Para tipos de enum, se o tipo de um parâmetro de enum é anotado com _Enum_is_bitflag_, aritmética é permitida no parâmetro.Caso contrário, o parâmetro deve ser do tipo exatamente correto.Se uma constante é estritamente necessária, o aviso C28137 pode também aplicar.
Essa regra pode ser usada para outros tipos de parâmetro também; Consulte a documentação de função de por que os tipos devem coincidir exatamente.