以下是<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