assert 매크로에 대해서 알아보도록 하겠습니다.
assert 매크로의 인자로는 항상 TRUE가 되는 조건식을 넣어줍니다.
만약, FALSE인 경우는 문제가 발생했음을 사용자에게 알려주게 됩니다.
즉, assert (1) 인 경우는 에러 없이 무사히 넘어가며
assert(0) 인 경우는 사용자에게 문제 발생을 알려줍니다.
assert를 쓰면 어떤 점에서 장점이 있을까요?
바로 Release 모드시에는 assert 매크로가 컴파일되지 않는다는 장점이 있습니다.
Debug 모드에서만 수행이 되죠. 즉, 프로그램을 끝마친 후 나중에 일일이
조건 검사 코드를 제거하지 않아도 되는 편리함이 있습니다.
assert를 사용할 때 주의할 점이 있습니다.
Release 모드에서는 assert가 아예 컴파일 되지 않기 때문에,
assert 안에서는 프로그램의 상태를 변화시켜서는 안됩니다.
함수 호출도 당연히 없어야 하겠지만, 변수의 값 변경도 없어야 하겠죠.
그럼 assert 를 좀 더 알차게 사용하는 법을 알아봅시다.
#1. assert 출력값 설정
단순히 assert (a != 0);
이라고 하면 에러 발생시 'src != 0' 이라는 메세지만 출려되기 때문에
문제 파악이 어렵습니다.
이런 경우,
assert (a !=0 && "a is zero !!!");
이런식으로 메세지 출력을 더 자세하게 할 수 있습니다.
#2. 무조건 오류 메세지가 나오도록 하는 방법
assert (!"무조건 메세지가 출력됩니다.");
assert (0); 과 같이 항상 오류가 발생하도록 하는 방법입니다.
'컴퓨터공학 기초 > C.C++' 카테고리의 다른 글
쓰레드(pthread_create, pthread_join) (0) | 2011.04.03 |
---|---|
함수 포인터와 void 포인터 (0) | 2011.03.14 |
문자열 검색 함수 - strchr(), strrchr(), strstr(), strspn(), strcspn(), strpbrk() (0) | 2010.10.11 |
copy()와 특별한 이터레이터 (0) | 2010.10.08 |
이터레이터(iterator) (0) | 2010.10.08 |