如何:使用 __analysis_assume 指定其他代码信息

可以为代码分析工具提供 C/C++ 代码提示,以帮助进行分析并减少警告。 若要提供其他信息,请使用下列函数:

__analysis_assume(expr)

expr - 假定计算为“true”的任何表达式。

代码分析工具假定该表达式表示的条件在该函数出现时为 true,并且在该表达式改变(例如,为变量赋值)之前一直为 true。

提示

__analysis_assume 不影响代码优化。 在代码分析工具以外,将 __analysis_assume 定义为 no-op(不执行任何操作)。

示例

下面的代码使用 __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);
}

请参见

参考

__assume