|
#include <assert.h>
assert(条件式)
#ifdef NDEBUGNDEBUGがある場合は常時、そうでなくてもassertの条件式eが真なら、マクロは(void)0になり、コンパイルの段階で最適化により消滅する。
#define assert(e) ((void)0)
#define _assert(e) ((void)0)
#else
#define _assert(e) assert(e)
#define assert(e) ((e) ? (void)0 : __assert(__func__, __FILE__, __LINE__, #e))
#endif