반응형
졸업작품을 준비할 때 썼던 assert 함수에 대해 기록하고자한다.
assert 함수는 assert.h 헤더를 추가해 주어야 사용 할 수 있다고 인터넷 설명에 나와있지만
기본적인 사용 (예로 설명하겠다.) 을 하고자 한다면 assert.h없이 그냥 사용하여도 무방하다고 한다.
assert는 조건에 따라 에러메세지를 띄우고 종료되므로 어떠한 가정하에 점검하기 좋은 방법이다. (Debug 모드에서만)
-> Release 모드에서는 코딩하지 않음.
원리는 간단하다.
assert(parm) 인데 파라미터 값이 1이 된다면 에러없이 코딩 될 것이고
0이 된다면 에러로 코딩이 종료될 것이다.
( 조건문을 떠올리면 이해하기 쉽다. )
--> 그렇다면 어디서 Err난지도모르고 쓸모 없지 않는가 싶다.
어디서 에러난지 구분하기위해 메세지를 넣어야겠다.
a=1;
assert(a!=1 && "a는 1이지");
//assert의 인자값은 거짓(FALSE) 이므로 "a는 1이지"란 메세지를 띄우며 종료 된다.
정리하자면 - assert 매크로는 코드상 과정을 철저하게 점검하기 위해 간단히 사용 할 수 있다. - 프로그램을 방어적으로 만들어줌. - Release 모드시 assert 매크로는 컴파일되지 않는다 => 코드완료 후 일일이 안지워도 됨) 여기서 주의할점은 *** Release 모드일때는 컴파일 되지 않기 때문에 사용되는 데이터는 변경해서는 안된다. |
'Study Note > Programming' 카테고리의 다른 글
[OpenCV] 이미지 출력하기. (0) | 2017.01.06 |
---|---|
[OpenCV] 설치 및 설정 (VS) (0) | 2017.01.06 |
메모리 관리 문제 (1) | 2016.11.22 |
[MFC] 대화상자 Domodal, Modaless (0) | 2016.11.19 |
[MFC] 원하는시간에 원하는 업무 수행하는 OnTimer() (0) | 2016.11.19 |