Visual C++는 디버깅을 위해 ASSERT와 VERIFY 매크로가 존재합니다.
이 두개의 매크로는 개발하고 있는 프로그램의 디버그 모드에서만 쓰여지며, 어떠한 조건이 true인지 false인지를 검사하는데 사용되고 만일 조건이 false라면 예외를 throw하게 됩니다.
그렇지만 이 두가지의 매크로는 릴리즈 버전의 프로그램을 빌드하는 과정에서 차이점을 보입니다.
ASSERT
VERIFY
아래의 샘플은 윈도우를 생성하는 코드를 ASSERT, VERIFY 매크로를 이용해서 처리한 코드입니다.
[code lang="cpp"] ASSERT(this->create(CProject::IDD_Dialog, pParent)); this->ShowWindow(SW_NORMAL); [/code]
or:
[code lang="cpp"] VERIFY(this->create(CProject::IDD_Dialog, pParent)); this->ShowWindow(SW_NORMAL); [/code]
만일 이 코드를 릴리즈 버전으로 빌드하게 되면 ASSERT 매크로로 처리한 코드는 윈도우가 절대 생성되지 않으며, VERIFY 매크로로 처리한 코드는 윈도우가 생성되는 것을 보실 수 있습니다.
그러므로 ASSERT 와 VERIFY는 아래와 같이 구분해서 사용하시면 됩니다.
ASSERT : 릴리즈 버전에서는 필요하지 않은 런타임시의 항목에 대한 정의 같은 것을 확인할 때 사용 VERIFY : 작성한 코드가 정상적으로 동작하는지 확인할 때 사용