Compartilhar via


Como especificar informações de código adicionais usando __analysis_assume

Você pode fornecer dicas a ferramenta de análise de código para o código C/C++ que ajudará o processo de análise e reduzirá avisos.Para fornecer informações adicionais, use a seguinte função:

__analysis_assume(expr)

expr - qualquer expressão que é usada para avaliar para retificar.

A ferramenta análise de código supõe que a condição representada pela expressão é true no ponto em que a função aparece e permaneça verdadeira até que a expressão seja alterada, por exemplo, pela atribuição a um variável.

ObservaçãoObservação

__analysis_assume não afeta a otimização de código.Fora da ferramenta de análise de código, __analysis_assume é definido como um não op.

Exemplo

O código a seguir usa __analysis_assume para corrigir a análise de código que C6388avisará:

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

Consulte também

Referência

__assume