C28252

Aviso C28252: anotação inconsistente para função: o parâmetro tem outra anotação nesta instância

Esse aviso se refere a um erro na anotação e reflete a exigência de que as anotações em uma declaração de função devem coincidir com aqueles na definição, exceto se uma função typedef está envolvida.Nesse caso, a função typedef é obtido como definitiva para a declaração e a definição.

Observe que as anotações são normalmente implementadas como macros e uma macro normalmente produzirá várias anotações de baixo nível.Esse aviso é relatado para cada anotação de baixo nível inigualável, para que uma macro única anotação incomparável pode produzir um número de anotações de baixo nível inigualáveis.É melhor simplesmente comparar o código de origem de declaração e definição para certificar-se de que eles são os mesmos.(Triviais diferenças na ordem das anotações não são reportadas).

A comparação é sempre entre a primeira declaração encontrado e a atual.Se houver declarações adicionais, cada declaração é verificada em grupos de dois.No momento não é possível fazer uma comparação diferente em pares, embora seja possível identificar o que há mais de duas declarações/definições.A mensagem de erro contém uma lista das anotações que diferem (em um nível bem baixo) entre as duas instâncias.

Essa mensagem de aviso exibe o texto do código subjacente enviado para o compilador e não as macros são usadas para inserir a anotação no código fonte (como é o caso, sempre que as macros são usadas).Em geral, você não precisa entender as anotações de baixo nível, mas você deve reconhecer que as anotações estão sendo geradas como inconsistentes entre os números de linha relatados na mensagem de erro.Na maioria das vezes, uma inspeção de código-fonte será mais claro por que a inconsistência existe.