assert.h
来自「GCC编译器源代码」· C头文件 代码 · 共 55 行
H
55 行
/* Allow this file to be included multiple times with different settings of NDEBUG. */#undef assert#undef __assert#ifdef NDEBUG#define assert(ignore) ((void) 0)#else#ifndef __GNUC__#define assert(expression) \ ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))#define __assert(expression, file, lineno) \ (printf ("%s:%u: failed assertion\n", file, lineno), \ abort (), 0)#else#if defined(__STDC__) || defined (__cplusplus)/* Defined in libgcc.a */#ifdef __cplusplusextern "C" {extern void __eprintf (const char *, const char *, unsigned, const char *) __attribute__ ((noreturn));}#elseextern void __eprintf (const char *, const char *, unsigned, const char *) __attribute__ ((noreturn));#endif#define assert(expression) \ ((void) ((expression) ? 0 : __assert (#expression, __FILE__, __LINE__)))#define __assert(expression, file, line) \ (__eprintf ("%s:%u: failed assertion `%s'\n", \ file, line, expression), 0)#else /* no __STDC__ and not C++; i.e. -traditional. */extern void __eprintf () __attribute__ ((noreturn)); /* Defined in libgcc.a */#define assert(expression) \ ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))#define __assert(expression, file, lineno) \ (__eprintf ("%s:%u: failed assertion `%s'\n", \ file, lineno, "expression"), 0)#endif /* no __STDC__ and not C++; i.e. -traditional. */#endif /* no __GNU__; i.e., /bin/cc. */#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?