블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

프로그램의 오류를 찾기 위해 가장 기본적으로 쓰는 기능 중 하나가 바로  assert 문 입니다.

 

사용법은 다음과 같지요.

 

#include <assert.h>              // C++ 로는 #include <cassert>

 

Pointer* p = new Pointer();      // 임의로 메모리를 할당하곤

 

assert( p != NULL );               // 메모리가 할당되지 않았다면 메세지 박스와 함께 프로그램이 죽습니다.

 

...                                        // 그렇지 않으면 프로그램은 계속 실행되겠죠.

 

보다시피 사용방법은 매우 직관적입니다.

 

assert( p != NULL ); 구문은 디버그 모드에서만 작동되며 p가 반드시 NULL이 아니어야 한다는 조건을 부여합니다. 따라서, p가  NULL 이라면 메세지 박스가 활성화 되면서 assert가 걸린 라인 수까지 표시가 되지요.

 

물론 릴리즈 모드로 컴파일하면 위의 구문들은 모두 생략됩니다.

 

 

 

이제, 기본적인 사용방법을 알았으니 추가적인 비법을 알려드리지요.

 

 #include  <assert.h>              // C++ 로는 #include <cassert>

 

Pointer* p = new Pointer();      // 임의로 메모리를 할당하곤

 

assert( p != NULL && "포인터 메모리 할당을 실패했잖아" );             

 

...                                        // 그렇지 않으면 프로그램은 계속 실행되겠죠.

 

결과는 메세지 박스에 "포인터 메모리 할당을 실패했잖아" 라는 문구까지 부가적으로 표시됩니다.

 

 

매우 간단한 반면 그 기능은 탁월합니다. 저 같은 경우는 항상 포인터 NULL  여부 및 인덱스 참조 시에  assert 문을 사용하곤 합니다만

 

여러분도 필요한 곳에 사용하시길 바랍니다.

[출처] assert 문 사용하기|작성자 Hermet


반응형

'Programming > C/C++' 카테고리의 다른 글

A * pA = new B 과 B * pB = new B의 차이점.  (0) 2010.06.21
__super C++ 키워드  (0) 2010.06.03
[펌] try-catch 예외처리 비용?  (0) 2010.05.13
[펌] 순수 가상 소멸자  (2) 2010.05.06
C/C++에서 assert  (0) 2010.05.03
Posted by blueasa
, |