#include #undef assert #ifdef NDEBUG #define assert(x) (void)0 #else #define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__), 0))) #endif #if __STDC_VERSION__ >= 201112L && !defined(__cplusplus) && !defined(static_assert) #define static_assert _Static_assert #endif #ifdef __cplusplus extern "C" { #endif void __assert_fail(const char*, const char*, int, const char*); #ifdef __cplusplus } #endif