C28252

avviso C28252: Annotazione incoerente per la funzione: il parametro dispone di un'altra annotazione su questa istanza

Questo avviso si riferisce a un errore nell'annotazione e riflette la condizione che le annotazioni in una dichiarazione di funzione devono corrispondere a quelle della definizione, a meno che una funzione typedef sia coinvolta.In tal caso, la funzione typedef viene presa come definitiva sia per la dichiarazione che per la definizione.

Si noti che le annotazioni vengono generalmente implementate come macro e una macro in genere produrrà più annotazioni di basso livello.Questo avviso viene visualizzato per ciascuna annotazione di basso livello non corrispondente, così una singola macro non corrispondente renderà una serie di annotazioni di basso livello non corrispondenti.È consigliabile confrontare semplicemente la dichiarazione e la definizione del codice sorgente per assicurarsi che siano uguali.(Le differenze banali nell'ordinamento delle annotazioni non vengono restituite.)

Il confronto avviene sempre tra la prima dichiarazione trovata e quella corrente.Se ci sono dichiarazioni aggiuntive, ogni dichiarazione viene controllata a gruppi di due.Non è attualmente possibile eseguire un confronto tra più di due elementi, sebbene sia possibile identificare se sono presenti più di due dichiarazioni o definizioni.Il messaggio di errore contiene un elenco di annotazioni che differiscono (ad un livello piuttosto basso) tra le due istanze.

Questo messaggio di avviso mostra il codice sottostante inviato al compilatore e non le macro utilizzate nella realtà per inserire l'annotazione nel codice sorgente (come nel caso in cui che le macro sono utilizzate).Non è in genere necessario comprendere le annotazioni di basso livello, ma è necessario riconoscere che le annotazioni vengono riportate come inconsistenti tra i numeri di riga indicati nel messaggio di errore.In genere, una verifica del codice sorgente indicherà chiaramente perché l'incongruenza esiste.