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


Практическое руководство. Добавление дополнительных сведений о коде с помощью __analysis_assume

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

__analysis_assume(expr)

expr — любое выражение, значением которого считается true.

В средстве анализа кода предполагается, что условие, представленное выражением, имеет значение true в точке отображения функции и сохраняет значение true до тех пор, пока выражение не будет изменено, например путем присвоения определенной переменной.

Примечание

Функция __analysis_assume не влияет на оптимизацию кода.За рамками средства анализа кода функция __analysis_assume определяется как холостая команда.

Пример

В следующем коде для исправления предупреждения анализа кода C6388 используется функция __analysis_assume:

#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);
}

См. также

Ссылки

__assume