Compartir a través de


C28251

advertencia C28251: Anotación incoherente para la función: esta instancia tiene un error

Esta advertencia hace referencia a un error en la anotación y refleja el requisito de que las anotaciones en una declaración de función deben coincidir con los de la definición, a menos que una función typedef realice.En ese caso, la función typedef se toma como definitiva para la declaración y la definición.

Observe que las anotaciones se implementan normalmente como macros y una macro producirá normalmente varias anotaciones de bajo nivel.Esta advertencia se muestra para cada anotación de bajo nivel, por lo que una sola macro de anotación puede producir varias anotaciones de bajo nivel no coincidentes.Es mejor comparar simplemente el código fuente de la declaración y la definición para asegurarse de que son iguales.(Las diferencias triviales en el orden de las anotaciones no se informan.)

La comparación es siempre entre la primera declaración encontrada y la actual.Si hay declaraciones adicionales, cada declaración es protegida en grupos de dos.No es actualmente posible realizar una comparación que no sea en pares, aunque es posible identificar que hay más de dos declaraciones y definiciones.El campo texto anterior contiene una lista de anotaciones que difieren (en un lugar bajo) entre las dos instancias.

Este mensaje de advertencia muestra el texto de código subyacente enviado al compilador y no las macros que se utilizan para insertar realmente la anotación del código fuente (como es el caso siempre que se utilizan macros).Generalmente no se necesita comprender las anotaciones de bajo nivel, pero se debe tener en cuenta que las anotaciones están designadas como incoherentes entre los números de línea indicados en el mensaje de error.Principalmente, un examen del código fuente clarificará por qué existe la inconsistencia.