다음을 통해 공유


How to: Using __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