Assert.h
C 표준 라이브러리 |
---|
일반 주제 |
기타 주제 |
C POSIX 라이브러리 |
---|
|
assert.h는 C 표준 라이브러리 중 하나다. 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
같이 보기
각주
- ↑ 가 나 International Standard for Programming Language C (C99), ISO/IEC 9899:1999, p. 169
- ↑ 《[Coding Programmer Page C / C++ Reference]》. 2012년 6월 30일에 원본 문서에서 보존된 문서. 2015년 11월 10일에 확인함.