SAL аннотации и параметры указателя

Я читал о SAL и мне не ясно, применяются ли аннотации к типам указателей к ссылке или к значению, на которое она указывает. Например, если у меня есть:

void f(_In_ type* t);

_In_ означает «Параметр должен быть действительным в предварительном состоянии и не будет изменен». Означает ли его применение здесь, что адрес t не изменится, или значение t?

4

Решение

В вашем примере _In_ Значит это

  • VS Code Analysis проверит, что вызывающие стороны передают ненулевой указатель на инициализированный буфер.
  • VS Code Analysis будет не подтвердить это t проверяется на нулевое значение перед разыменованием его в функции; t предполагается, что не является нулевым в самой функции. Путем изменения _In_ в _In_opt_, VS Анализ кода будут подтвердить это t проверяется на нулевое значение перед разыменованием.
  • VS Code Analysis проверит, что функция читает только «один элемент» type из памяти, на которую указывает tкак присвоение значения разыменованного указателя переменной.
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]