ASSERT 와 VERIFY 매크로의 차이

Category:
Author: zemna
Date: April 17, 2021
Share this:

Visual C++는 디버깅을 위해 ASSERTVERIFY 매크로가 존재합니다.

이 두개의 매크로는 개발하고 있는 프로그램의 디버그 모드에서만 쓰여지며, 어떠한 조건이 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 : 작성한 코드가 정상적으로 동작하는지 확인할 때 사용

Share this:

Leave a Reply

Your email address will not be published. Required fields are marked *

Let's connect and create
something awesome together!
2023 - Copyright, All Rights Reserved, Made by ZEMNA.NET with ❤️
crossmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram