C28251
предупреждение C28251: Несогласованная аннотация для функции: этот экземпляр содержит ошибку
Это предупреждение относится к ошибке в аннотации и отражает требование, которое заключается в том, что аннотации на объявление функции должны соответствовать данным в определении, кроме тех случаев, когда используется функция typedef.В этом случае функция typedef принимается в качестве определительного слова для объявления и определения.
Обратите внимание, что аннотации обычно реализуются как макросы, и один макрос обычно создает несколько низкоуровневых аннотаций.Это предупреждение вызывается для каждой несоответствующей заметки низкого уровня, поэтому одиночный несоответствующий макрос аннотации может создавать несколько несоответствующих аннотаций низкого уровня.Лучше всего просто сравнивать объявление и определение исходного кода для того, чтобы быть увереным, что они одинаковы.(Тривиальные различия в порядке аннотации не появляются).
Сравнение всегда происходит между первым найденным объявлением и текущим.Если существуют дополнительные объявления, то каждое объявление регистрируется группами по два.В данный момент невозможно выполнить сравнение, кроме как сравнение по парам, хотя можно указать, что существует более двух объявления/определений.Поле text, приведенное выше, содержит список аннотаций, которые отличаются (на относительно низком уровне) между двумя экземплярами.
Это предупреждение выводит текст основного кода, отправленного компилятору, но не макросы, которые фактически используются, чтобы добавлять аннотации в исходный код (например в случае, когда макрос не используется).Как правило, не требуется понимать низкоуровневые аннотации, но необходимо уметь узнавать, что в аннотации существует несогласованность между номерами строк в сообщении об ошибке.В основном, проверка исходного кода определяет, почему несогласованность существует.