Sdílet prostřednictvím


Postupy: Určení dalších informací o kódu pomocí __analysis_assume

Nástroji pro analýzu kódu C/C++ lze poskytnout tipy, které napomohou procesu analýzy a sníží množství upozornění.Chcete-li poskytnout dodatečné informace, použijte následující funkci:

__analysis_assume(expr)

expr - libovolný výraz, o kterém se předpokládá, že bude vyhodnocen jako pravdivý.

Nástroj pro analýzu kódu předpokládá, že je podmínka představovaná výrazem v době výskytu funkce pravdivá a zůstává pravdivá, dokud není výraz pozměněn například přiřazením do proměnné.

[!POZNÁMKA]

Funkce __analysis_assume nemá vliv na optimalizaci kódu.Mimo nástroj analýzy kódu je funkce __analysis_assume definována jako operace no-op.

Příklad

Následující kód používá funkci __analysis_assume k opravě upozornění C6388 analýzy kódu:

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

Viz také

Referenční dokumentace

__assume