C28253
Upozornění C28253: Nekonzistentní anotace funkce: parametr má v této instanci jiné anotace
Toto upozornění odkazuje na chybu v anotaci a odráží požadavek, že anotace deklarace funkce musí odpovídat definici, s výjimkou zahrnutí funkce typedef.V tomto případě se funkce typedef považuje jako konečná pro deklaraci i definici.
Poznamenejme, že anotace jsou obvykle implementovány jako makra a jedno makro obvykle provede několik anotací nižší úrovně.Toto upozornění je hlášeno pro každou neplatnou nízkoúrovňovou anotaci, takže jedna neplatná anotace může způsobit více neplatných anotací nižší úrovně.Nejlepší je jednoduše porovnat deklarace a definice ve zdrojovém kódu a ujistit se, že jsou stejné. (Jednoduché rozdíly v pořadí anotací nejsou zobrazeny.)
Porovnání nastane vždy mezi první nalezenou deklarací a tou aktuální.Pokud existují další deklarace, každá deklarace se kontroluje ve dvojicích.Aktuálně není možné provést porovnání jiné než ve dvojicích, přestože je možné identifikovat, že existuje více než dvě deklarace/definice. Chybová zpráva obsahuje seznam anotací, které se mezi dvěma instancemi (na velmi nízké úrovni) liší.
Toto upozornění zobrazí text kódu odeslaného kompilátoru a ne makra, které jsou použity ke skutečnému vložení anotace do zdrojového kódu (jako v jakémkoli případě použití maker).Obecně není nutné porozumět nízkoúrovňovým anotacím, ale mezi čísly řádků v chybové zprávě byste měli rozpoznat, že anotace jsou hlášeny jako nekonzistentní.Kontrola zdrojového kódu většinou ujasní proč nekonzistence existuje.