HOW TO:使用 __analysis_assume 指定其他程式碼資訊
您可以提供提示給 C/C++ 程式碼的程式碼分析工具,以協助執行分析處理序 (Process) 並減少警告。若要提供額外資訊,請使用下列函式:
__analysis_assume(expr)
expr - 任何應評估為 true 的運算式。
程式碼分析工具會假設函式出現時此運算式所代表的條件為 true,而且此條件將保持為 true,直到運算式改變為止 (例如指派給變數)。
注意事項 |
---|
__analysis_assume 不會影響程式碼最佳化。在程式碼分析工具外部,__analysis_assume 定義為不執行任何作業。 |
範例
下列程式碼會使用 __analysis_assume 更正程式碼分析警告 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);
}