1#include <features.h> 2 3#undef assert 4 5#ifdef NDEBUG 6#define assert(x) (void)0 7#else 8#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0))) 9#endif 10 11#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus) 12#define static_assert _Static_assert 13#endif 14 15#ifdef __cplusplus 16extern "C" { 17#endif 18 19_Noreturn void __assert_fail (const char *, const char *, int, const char *); 20 21#ifdef __cplusplus 22} 23#endif 24