1 2 #ifndef __ASSERT_H__ 3 #define __ASSERT_H__ 4 5 #ifndef NDEBUG 6 7 #define assert(_expr) \ 8 if (!(_expr)) { \ 9 __assert(__func__, __FILE__, __LINE__, #_expr); \ 10 } 11 12 #else 13 14 #define assert(_expr) 15 16 #endif 17 18 void __assert(const char *func, const char *file, int line, const char *expr); 19 20 #endif /* __ASSERT_H__ */ 21 22