assert.h

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

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)

예제[편집]

#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

같이 보기[편집]

각주[편집]

  1. International Standard for Programming Language C (C99), ISO/IEC 9899:1999, p. 169
  2. 《[Coding Programmer Page C / C++ Reference]》.