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 + -
显示快捷键?