Compartir a través de


C28252

Advertencia C28252: Anotación incoherente para la función: el parámetro tiene otra anotación en esta instancia

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 no coincidente, por lo que una sola macro de anotación no coincidente 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 insignificantes en el orden de las anotaciones no se informan.)

La comparación siempre se da entre la primera declaración encontrada y la actual.Si hay declaraciones adicionales, cada declaración se revisa en grupos de dos.No es posible actualmente realizar una comparación que no sea en pares, aunque es posible identificar que hay más de dos declaraciones y definiciones. El mensaje de error contiene una lista de anotaciones que difieren (a un nivel bastante bajo) entre las dos instancias.

Este mensaje de advertencia muestra el texto y el código subyacente enviados al compilador y no las macros que se utilizan para insertar realmente la anotación en el código fuente (como ocurre 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 informadas como incoherentes entre los números de línea indicados en el mensaje de error.En buena medida, un examen del código fuente clarificará por qué existe la inconsistencia.