2013년 9월 10일 화요일

assert.h


assert.h 파일은 프로그래밍 단계에서 오류 검증 목적으로 사용되는 assert()라는 매크로 함수 단 하나만을 정의하고 있다. 단, 소스 파일에 NDEBUG가 정의되어 있는 때에는 작동하지 않는데, NDEBUG는 다음과 같이 정의한다.

#define NDEBUG



assert(expression)
assert()는 디버깅의 용도로 사용되는데 매개변수 값이 0 (즉, false)인 경우에 프로그램을 중단하고 다음과 유사한 디버깅 정보를 출력한다.

Assertion failed: num!=NULL, file ..\src\assert_test.c, line 7




#include <stdio.h>
#include <assert.h>

/* #define NDEBUG */

void printNumber( int* num) {
       assert(num!=NULL); /* num이 널이면 프로그램을 중단한다. */
        printf("%d\n" , *num);
}

int main() {
        int i = 10;
        int* m = NULL;
        int* n = NULL;

       m = &i;

       printNumber(m);
       printNumber(n);

        return 0;
}