以下是<assert.h>的标准C99版本的实现:
/ * 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函数* /
1TP5Incluido <stdlib.h>
1TP5Incluido <stdio.h>
1TP5Incluido <assert.h>
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 ();
}
/ *文件结尾* /
EL FIN



