C28039
Ostrzeżenie C28039: Typ rzeczywistego parametru <operand> powinien dokładnie pasować do typu <typename>
To ostrzeżenie jest zwykle raportowane gdy wyliczenie formalne nie zostało uznane za element członkowski wyliczenia, ale również może zostać użyte dla innych typów.
Ponieważ C pozwala na użycie wyliczeń zamiennie i wymiennie ze stałymi, łatwo przekazać niewłaściwą wartość wyliczenia do funkcji nie wywołując błędu.
Dla typów wyliczeniowych, jeśli typ parametru wyliczeniowego jest oznaczony _Enum_is_bitflag_, wtedy obliczenia arytmetyczne są dozwolone na parametrze.W przeciwnym wypadku parametr musi być poprawnego typu.Jeśli stała jest ściśle wymagana, można również stosować ostrzeżenie C28137.
Ta reguła może być stosowana także do innych typów parametrów; zobacz w dokumentacji funkcji dlaczego typy muszą być zgodne.