Compartir a través de


Cómo: Especificar información de código adicional mediante __analysis_assume

Puede proporcionar sugerencias a la herramienta de análisis de código para código en C/C++ que servirán de ayuda en el proceso de análisis y reducirán las advertencias.Para proporcionar información adicional, utilice la función siguiente:

__analysis_assume(expr)

expr: expresión de la que se supone que se evalúa como true.

La herramienta de análisis de código supone que la condición representada por la expresión se aplica en el punto donde aparece la función y seguirá aplicándose hasta que se modifique la expresión, por ejemplo, si se asigna a una variable.

[!NOTA]

__analysis_assume no afecta a la optimización del código.Fuera de la herramienta de análisis de código, __analysis_assume se define como una ausencia de operación.

Ejemplo

El código siguiente utiliza __analysis_assume para corregir la advertencia de análisis de código 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);
}

Vea también

Otros recursos

__assume