Практическое руководство. Добавление дополнительных сведений о коде
Обновлен: Ноябрь 2007
Существует возможность создания подсказок для средства анализа кода, которые способствуют процессу анализа и снижают количество предупреждений. Для добавления дополнительных сведений используйте следующую функцию:
__analysis_assume( expr )
expr — любое выражение, значением которого считается true.
В средстве анализа кода предполагается, что условие, представленное выражением, имеет значение true в точке отображения функции и сохраняет значение true до тех пор, пока выражение не будет изменено, например путем присвоения определенной переменной.
Примечание. |
---|
Функция __analysis_assume не влияет на оптимизацию кода. За рамками средства анализа кода функция __analysis_assume определяется как холостая команда. |
Пример
В следующем примере кода функция __analysis_assume используется для устранения причины предупреждения C6388.
#include<windows.h>
#include<codeanalysis\sourceannotations.h>
using namespace vc_attributes;
// calls free and sets ch to null
void FreeAndNull(char* ch);
//requires pc to be null
void f([Pre(Null=Yes)] char* pc);
void test( )
{
char *pc = (char*)malloc(5);
FreeAndNull(pc);
__analysis_assume(pc == NULL);
f(pc);
}