assert (CRT)

이 식 하 고, 결과 평가 false진단 메시지를 출력 하 고 프로그램을 중단 합니다.

void assert( 
   int expression 
);

매개 변수

  • expression
    0이 아닌 값 또는 0 (대 한 포인터를 포함 하 여) 식입니다.

설명

assert 매크로입니다 일반적으로 구현 하 여 프로그램 개발 하는 동안 논리 오류를 식별 하려면 사용은 expression 인수를 계산 false 만 때 프로그램이 올바르게 작동 하지.디버깅 완료 된 후에 어설션을 검사 식별자를 정의 하 여 소스 파일을 수정 하지 않고 끌 수 있습니다 NDEBUG.NDEBUG로 정의할 수 있습니다는 /D 명령줄 옵션 나는 #define 지시문입니다.경우 NDEBUG 를 정의 하는 #define, 지시문 ASSERT 앞에 나타나야 합니다.H 포함 되어 있습니다.

assert인쇄 진단 메시지 때 expression 로 평가 false (0) 및 호출 중단 프로그램이 실행을 종료 합니다.경우 실행 되지 않습니다 expression 입니다 true (0이 아닌 값)입니다.진단 메시지 실패 한 식 이름을 어설션이 실패 위치는 소스 파일 및 줄 번호를 포함 합니다.

진단 메시지에 와이드 문자를 인쇄 합니다.따라서 경우에 유니코드 문자 식에서 예상 대로 작동 합니다.

진단 메시지의 대상 루틴을 호출 하는 응용 프로그램의 형식에 따라 달라 집니다.콘솔 응용 프로그램을 통해 메시지를 받을 항상 stderr.Windows 기반 응용 프로그램에서는 assert 호출 하는 Windows MessageBox 메시지와 함께 표시 하는 메시지 상자를 만들려면 함수는 확인 단추.사용자가 클릭할 때 확인, 즉시 프로그램을 중단 합니다.

런타임 라이브러리의 디버그 버전을 응용 프로그램이 연결 될 때 assert 세 가지 단추가 있는 메시지 상자를 만듭니다: 중단, 다시 시도, 및 무시.사용자가 클릭 하는 경우 중단, 즉시 프로그램을 중단 합니다.사용자가 클릭 하는 경우 다시 시도, 디버거가 호출 되 고에서 just-in-time (JIT) 디버깅을 사용 하면 사용자가 프로그램을 디버깅할 수 있습니다.사용자가 클릭 하는 경우 무시, assert 의 정상적인 실행을 계속: 메시지 상자를 만드는 확인 단추.참고 무시 오류 조건이 있으면 정의 되지 않은 동작이 발생할 수 있습니다.

CRT 디버깅 하는 방법에 대 한 자세한 내용은 참조 하십시오. CRT 디버깅 기술.

assert 루틴 모두는 릴리스 및 디버그 버전의 C 런타임 라이브러리에서 사용할 수 있습니다.두 개의 다른 어설션 매크로 _ASSERT_ASSERTE, 또한 사용할 수는 있지만 해당만 하는 경우 전달 식 평가 _DEBUG 플래그가 정의 되었습니다.

요구 사항

루틴

필수 헤더

assert

<assert.h>

예제

이 프로그램은 analyze_string 함수 사용 하는 assert 문자열 및 길이에 여러 조건을 테스트 하는 함수에 관련 된.조건 중 하나라도 실패 하면 프로그램 실패 원인을 나타내는 메시지가 인쇄 됩니다.

// crt_assert.c
// compile with: /c
#include <stdio.h>
#include <assert.h>
#include <string.h>

void analyze_string( char *string );   // Prototype

int main( void )
{
   char  test1[] = "abc", *test2 = NULL, test3[] = "";

   printf ( "Analyzing string '%s'\n", test1 ); fflush( stdout );
   analyze_string( test1 );
   printf ( "Analyzing string '%s'\n", test2 ); fflush( stdout );
   analyze_string( test2 );
   printf ( "Analyzing string '%s'\n", test3 ); fflush( stdout );
   analyze_string( test3 );
}

// Tests a string to see if it is NULL, 
// empty, or longer than 0 characters.
void analyze_string( char * string )
{
   assert( string != NULL );        // Cannot be NULL
   assert( *string != '\0' );       // Cannot be empty
   assert( strlen( string ) > 2 );  // Length must exceed 2
}
  
  

해당 .NET Framework 항목

System::Diagnostics::Debug:: 어설션

참고 항목

참조

오류 처리 (CRT)

프로세스 및 환경 제어

abort

raise

signal

_Assert를 _ASSERTE 매크로

_DEBUG