assert 함수는 아래와 같이 사용하는 거다!!
assert와 함께 설명까지!!! 이건 assert() 함수를 까보지 않고서는 하지 못하는 스킬이다.
god damm!!!! 너무 멋지잖아!!
assert( 0 != NULL && "포인터 메모리 할당을 실패했잖아" );
+
다음은 C99의 assert.h이다.
코드가 예술이다..
+
#include <stdio.h>
#include <stdlib.h>
// The following is an implementation of the Standard C99 version of <assert.h>:
/* assert.h header */
#undef assert
#ifdef NDEBUG
#define assert(_Ignore) ((void)0) // DEBUG를 사용하지 않으면 assert가 실행하지 않게 함
#else
void _Assertfail(char *, char *, int, char *);
#define assert(_Test) ((_Test)?((void)0):_Assertfail(#_Test,__FILE__,__LINE__,__func__))
#endif
/* END OF FILE */
/* xassertfail.c -- _Assertfail function */
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
// test : assert error number
void _Assertfail(char *test, char *filename, int line_number, char *function_name)
{
fprintf(stderr, "Assertion failed: %s, function %s, file %s, line %d.",
test, function_name, filename, line_number);
abort();
}
/* END OF FILE */
int main()
{
assert( 0 != NULL && "포인터 메모리 할당을 실패했잖아" );
return 0;
}
출처 : http://blog.naver.com/hermet?Redirect=Log&logNo=54763810