other sections
ASSERT(3) | Linux Programmer's Manual | ASSERT(3) |
이름¶
assert - expression 이 거짓인 경우 프로그램 종료
사용법¶
#include <assert.h> void assert (int expression);
설명¶
<assert.h> 가 마지막으로 포함될 시점에 매크로 NDEBUG 가 정의되어 있으면, 매크로 assert() 는 아무 코드도 생성하지 않으며 따라서 아무 것도 하지 않는다. 그렇지않고, (즉, NDEBUG 가 정의되어있지 않고) expression 이 거짓이면, 매크로 assert() 는 에러 메시지를 표준 출력으로 출력하고, abort() 를 호출하여 프로그램을 종료한다.
이 매크로는 프로그래머가 버그를 잡는데에 쓰인다. 실제로 "assertion failed in file foo.c, function do_bar(), line 1287" 와 같은 메시지는 일반 사용자에겐 아무 소용이 없다.
반환값¶
반환값을 갖지 않는다.
호환¶
ISO9899 (ANSI C)
버그¶
assert() 는 매크로 구현된다.; assert() 로 검사하는 expression이 부작용을 낳는다면, 프로그램의 실행은 NDEBUG 가 정의 되어 있느냐에 따라 달라진다. 이런 점 때문에 디버깅 모드에서는 사라지는 Heisenbugs(불확정성 버그)를 만들 수 있다.
관련 항목¶
번역¶
한글 Manpage 프로젝트 (http://man.kldp.org) 2005년 1월 30일
April 4, 1993 | GNU |