상위 질문
타임라인
채팅
관점

Assert.h

C 표준 라이브러리 중 하나 위키백과, 무료 백과사전

Remove ads

assert.hC 표준 라이브러리 중 하나다. C 언어 전처리기 매크로 중 하나인 assert()[1][2] 이 매크로는 표명을 구현하여 프로그램이 추정한 것을 확인하며 거짓인 경우 진단 메시지를 출력한다. C++에서는 cassert 헤더 파일을 통해 사용할 수 있다.

프로그램이 실행될 때, assert()는 조건에 오류가 있을 경우 표준오류 (stderr)를 통해 실패한 호출의 정보를 출력하고, abort()를 호출한다. 표준오류 (stderr)에 포함된 정보는 아래와 같다.

  • 소스 파일명 (미리정의된 매크로 __FILE__)
  • 소스 라인 넘버 (미리정의된 매크로 __LINE__)
  • 소스 함수 (미리정의된 식별자 __func__)(C99에서 추가 됨)
  • 0으로 추정된 텍스트 표현[1]

리눅스에서 컴파일된 오류의 예

program: program.c:5: main: Assertion `a != 1' failed.
Abort (core dumped)
Remove ads

예제

#include <stdio.h>
#include <assert.h>

int test_assert ( int x )
{
   assert( x <= 4 );
   return x;
}

int main ( void )
{
  int i;

    for (i=0; i<=9; i++)
    {
        test_assert( i );
        printf("i = %d\n", i);
    }

  return 0;
}
i = 0
i = 1
i = 2
i = 3
i = 4
assert: assert.c:6: test_assert: Assertion `x <= 4' failed.
Aborted

같이 보기

각주

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads