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 16 extern "C" { 17 #endif 18 19 _Noreturn void __assert_fail (const char *, const char *, int, const char *); 20 21 #ifdef __cplusplus 22 } 23 #endif 24