Udostępnij za pośrednictwem


C28251

Ostrzeżenie C28251: niespójne adnotacji dla funkcji: to wystąpienie ma błąd

Ostrzeżenie to odnosi się do błędu w adnotacji i odzwierciedla wymóg adnotacji na deklarację funkcji musi odpowiadać tych definicji, z wyjątkiem przypadków, jeśli funkcja typedef jest zaangażowany.W takim przypadku funkcja typedef jest pobierana jako ostateczne, zarówno dla deklaracji i definicji.

Należy zauważyć, że adnotacje są zwykle implementowane jako makra i jedno makro przyniesie zwykle kilka adnotacji niskiego poziomu.To ostrzeżenie jest raportowany w każdej niedopasowane adnotacji niskiego poziomu, tak makro pojedynczej adnotacji niedopasowane może dać liczba niedopasowane adnotacje niskiego poziomu.Najlepiej można po prostu porównywać kod źródłowy w deklaracji i definicji, aby upewnić się, że są takie same.(Trivial różnic w celu adnotacje nie są raportowane.)

Porównanie jest zawsze między pierwszego zgłoszenia znalezione i bieżący.W przypadku dodatkowych deklaracji, każda deklaracja jest sprawdzane w dwóch grup.On obecnie nie jest możliwe do porównania innych niż w parach, mimo że jest możliwe określenie, że są więcej niż dwie deklaracje/definicje.Tekst polu powyżej zawiera wykaz adnotacje, które różnią się (na dość niskim poziomie) między dwoma wystąpieniami.

Ten komunikat ostrzegawczy Wyświetla tekst odpowiedniego kodu wysyłane do kompilator i nie makra, które są używane do faktycznie Wstaw adnotację w kodzie źródłowym (jak w przypadku gdy używane są makra).Ogólnie rzecz biorąc nie trzeba zrozumieć adnotacje niskiego poziomu, ale powinien rozpoznać, że adnotacje są zgłaszana jako niespójności między numery linii zgłoszone w komunikacie o błędzie.W większości sytuacji kontroli kodu źródłowego umożliwi jasne, dlaczego istnieje niespójność.