Sdílet prostřednictvím


C28250

upozornění C28250: Nekonzistentní anotace funkce: v předchozí instanci došlo k chybě.

Poznámka: Existuje několik prototypů pro tuto funkci.První prototyp s číslem instance porovná toto upozornění <číslo>.

Pokud prohlášení pomocí typedef, řádku kde typedef se zobrazí je užitečnější než řádek prohlášení.

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ší prohlášení, je použití zkontrolovat každé prohlášení.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. text Nad pole obsahuje seznam poznámek, které se liší (na poměrně nízké úrovni) mezi dvěma instancemi.

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.