Поделиться через


C28718

предупреждение C28718: неаннотированный буфер

Это предупреждение отображается, если буфер, передаваемый функции или возвращаемый функцией, не имеет заметок SAL. Средства статического анализа могут использовать такие заметки для обнаружения переполнения буфера. Сведения о добавлении заметок см. в статье Использование заметок SAL для сокращения дефектов кода C/C++.

В настоящее время с этим предупреждением диагностируются только неконстантные строковые буферы. В идеале все буферы, переданные в качестве параметров функции или возвращаемые функциями, должны быть помечены. Массивы wchar_t или char являются кандидатами на это предупреждение. Неподписанные символы в настоящее время не являются.

Примере

В следующем примере кода создается это предупреждение.

int foo( LPTSTR buffer, size_t cch );  

Следующий пример кода позволяет избежать этого предупреждения.

int foo( _Out_writes_(cch) LPTSTR buffer, size_t cch );

Использование аннотаций SAL для сокращения количества дефектов в коде C/C++