본문 바로가기

프로그래밍/C/C++/API

[C/C++/API] assert() 조건 검사 / 강제 종료

우선 assert의 뜻을 보자.

1. 단언하다, 역설하다, 강력히 주장하다(⇒ declare [유의어])
2. <권리 등을> 주장[옹호]하다(defend)
3. [assert oneself로]a 의견[권리]을 주장하다;고집하다, 주제넘게 나서다
4. (당연한 일로) 가정하다
(출처 - 네이버 사전검색)

assert() 함수는 아주 강력하다.

뜻에서 부터 알 수 있듯이 아주 확고히 단언 하고 확언 할때 쓸 수 있는 함수 이다.

assert(조건식) 이 만족 할경우에는 이상 없이 지나간다.

하지만 조건식이 만족 하지 못 할 경우에는 메세지를 출력해서 프로그램을 강제 종료 시킨다.

즉, 결코 이 부분에서는 오류가 발생하지 않겠다고 생각했을때 넣어야 하며 

그 예상치 못한 경우가 발생했을때 찾기위해 넣어야 하는 것이다. 

하지만 릴리즈 모드에서 assert() 함수는 동작 하지 않는다.

한마디로 디버그 전용 조건문 검사 함수인것이다.

아주 강력하지만 디버그를 하다가 잘못된값이 들어간다면 프로그램은

여지 없이 죽어나갈테니 적절하게 사용하기 바란다.