使用断言

断言的一些宏和实现的某些函数

ANSI C 断言  assert      assert.h             Debug And Release

C运行时库断言  _ASSERT crtdbg.h           Debug 

C运行时库断言  _ASSERTE   crtdbg.h       Debug 

MFC库断言  ASSERT           Debug 
MFC库断言  ASSERT_VALID           Debug 
MFC库断言  ASSERT_KINDOF          Debug  
MFC库断言  ASSERT_POINTER          Debug  
MFC库断言  ASSERT_NULL_OR_POINTER          Debug  

ATL 断言  ATLASSERT atlbase.h            Debug 

_CRTIMP int __cdecl _CrtDbgReport(
_In_ int _ReportType,
_In_opt_z_ const char * _Filename,
_In_ int _Linenumber,
_In_opt_z_ const char * _ModuleName,
_In_opt_z_ const char * _Format,
...);

_CrtDbgBreak();

BOOL AFXAPI AfxIsValidAddress(const void* lp,UINT_PTR nBytes, BOOL bReadWrite = TRUE);

BOOL AfxIsValidString(LPCSTR string,int stringlenght=-1);

具体可看这些函数的实现。。。。。

什么需要断言?

1:检查函数的输入

2:检查函数的输出

3:检查对象的当前状态

4:检查逻辑变量的合理性和一致性

5:检查类中的不变量

posted on 2011-07-13 21:12  焰企鹅  阅读(176)  评论(0)    收藏  举报