C28039
advertencia C28039: El tipo del parámetro real <operand> debe coincidir exactamente con el tipo de <typename>
Esta advertencia se muestra normalmente cuando no se le pasa un miembro de la enumeración a una enumeración formal, pero se puede utilizar también para otros tipos.
Dado que C permite que las enumeraciones sean utilizadas alternativamente y también mediante constantes, es fácil pasar el valor de enumeración incorrecto a una función, sin un error.
Para los tipos de enumeración, si se indica el tipo de un parámetro de enumeración con _Enum_is_bitflag_, se permite la aritmética en el parámetro.Si no, el parámetro debe ser, exactamente, del tipo correcto.Si una constante es estrictamente necesaria, la advertencia C28137 también se puede aplicar.
Esta regla se puede utilizar para otros tipos de parámetros también; consulte la documentación de la función en la que se habla de por qué los tipos deben coincidir exactamente.