windows原断言宏:
ASSERT(exp) //可中断程序,不能显示自定义消息
_ASSERT(exp) //可中断程序,不能显示自定义消息
_ASSERTE(exp) //可中断程序,不能显示自定义消息,可显示表达式exp
可输出文件的断言宏:
ASSERT(exp) //可中断程序,不能显示自定义消息
_ASSERT(exp) //可中断程序,不能显示自定义消息
_ASSERTE(exp) //可中断程序,不能显示自定义消息,可显示表达式exp
可输出文件的断言宏:
#if defined(_DEBUG) #define _ASSERTE_MSG0(expr,format) / do { if (!(expr) && / (1 == _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, NULL, #expr##"/n"##format))) / _CrtDbgBreak(); } while (0) #define _ASSERTE_MSG1(expr,format,arg1) / do { if (!(expr) && / (1 == _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, NULL, #expr##"/n"##format,arg1))) / _CrtDbgBreak(); } while (0) #define _ASSERTE_MSG2(expr,format,arg1,arg2) / do { if (!(expr) && / (1 == _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, NULL, #expr##"/n"##format,arg1,arg2))) / _CrtDbgBreak(); } while (0) #define _ASSERTE_MSG3(expr,format,arg1,arg2,arg3) / do { if (!(expr) && / (1 == _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, NULL, #expr##"/n"##format,arg1,arg2,arg3))) / _CrtDbgBreak(); } while (0) #define _ASSERTE_MSG4(expr,format,arg1,arg2,arg3,arg4) / do { if (!(expr) && / (1 == _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, NULL, #expr##"/n"##format,arg1,arg2,arg3,arg4))) / _CrtDbgBreak(); } while (0) #else #define _ASSERTE_MSG0(expr,format) #define _ASSERTE_MSG1(expr,format,arg1) #define _ASSERTE_MSG2(expr,format,arg1,arg2) #define _ASSERTE_MSG3(expr,format,arg1,arg2,arg3) #define _ASSERTE_MSG4(expr,format,arg1,arg2,arg3,arg4) #endif