#ifndef __ASSERT_H__ #define __ASSERT_H__ #ifndef NDEBUG #define assert(_expr) #else #define assert(_expr) \ if (e) { \ __assert(__func__, __FILE__, __LINE__, #e); \ } #endif void __assert(const char *func, const char *file, int line, const char *expr); #endif /* __ASSERT_H__ */