Procedura: specificare ulteriori informazioni relative al codice
Aggiornamento: novembre 2007
È possibile fornire suggerimenti allo strumento di analisi del codice per l'esecuzione del processo di analisi e la riduzione degli avvisi. Per fornire informazioni aggiuntive, utilizzare la funzione seguente:
__analysis_assume( expr )
expr- qualsiasi espressione che deve restituire true.
Lo strumento di analisi del codice presuppone che la condizione rappresentata dall'espressione sia vera nel punto in cui la funzione viene visualizzata e rimanga vera finché non viene apportata una modifica all'espressione, ad esempio tramite assegnazione a una variabile.
Nota: |
---|
__analysis_assume non influisce sull'ottimizzazione del codice. Al di fuori dello strumento di analisi del codice, la funzione __analysis_assume viene definita operazione no-op. |
Esempio
Il codice seguente utilizza __analysis_assume per correggere l'avviso 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);
}