《C编程.C以后》7.代码库

以下是<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函数* / 
 #include  <stdlib.h>
 #include  <stdio.h>
 #include  <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 (); 
 } 
 / *文件结尾* /

相关文章:《C编程.计算机科学》8.声明

THE END
分享