반응형

졸업작품을 준비할 때 썼던 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 모드일때는 컴파일 되지 않기 때문에 사용되는 데이터는 변경해서는 안된다.



  


+ Recent posts