C28251
avertissement C28251 : Annotation non cohérente pour la fonction : cette instance a une erreur
Cet avertissement fait référence à une erreur dans l'annotation et reflète la condition que les annotations sur une déclaration de fonction doivent correspondre à celles de la définition, sauf si une fonction typedef est impliquée.Dans ce cas, la fonction typedef est considérée comme définitive pour la déclaration et la définition.
Notez que les annotations sont généralement implémentées comme des macros, et une macro rapportera généralement plusieurs annotations de bas niveau.Cet avertissement est signalé pour chaque annotation de bas niveau non correspondante, une seule macro d'annotations non correspondante, peut produire une un nombre d'annotations de bas niveau non correspondant.Il est préférable de comparer seulement le code source de déclaration et de définition pour s'assurer qu'elles sont identiques. (Les différences insignifiantes dans l'ordre des annotations ne sont pas reportés.)
La comparaison est toujours entre la première déclaration trouvée et l'actuelle.S'il y a des déclarations supplémentaires, chaque déclaration est vérifiée par groupe de deux.Il n'est actuellement pas possible d'effectuer une comparaison autre que par paires, bien qu'il soit possible de l'identifier qu'il y a plus de deux déclarations/définitions. Le champ de text ci-dessus contient une liste des annotations qui diffèrent (à un niveau inférieur) entre les deux instances.
Ce message d'avertissement affiche le texte du code sous-jacent envoyé au compilateur, et non des macros qui sont utilisées pour insérer réellement l'annotation de code source (comme c'est le cas chaque fois que les macros sont utilisées).En général vous n'avez pas besoin de comprendre les annotations de bas niveau, mais vous devez reconnaître que les annotations sont signalées comme incohérentes avec les numéros de ligne reporté dans le message d'erreur.Essentiellement, une inspection de code source indiquera clairement pourquoi l'incohérence existe.