C Programming/Code library
Appearance
From Wikibooks, open books for an open world
This page or section is an undeveloped draft or outline.
You can help to develop the work, or you can ask for assistance in the project room.
You can help to develop the work, or you can ask for assistance in the project room.
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) #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> void _Assertfail(char*test,char*filename,intline_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 */