cmdassert.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:1k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. /*
  2. // cmdassert.h
  3. // magi@cs.stanford.edu
  4. // 2/3/2000
  5. //
  6. // non-fatal equivalent of assert for use in Tcl command-processing
  7. // functions, say when something doesn't like its arguments -- instead
  8. // of calling abort(), we'll just return TCL_ERROR.
  9. // The mechanics here are basically just stolen from assert.h.
  10. */
  11. #ifndef _CMDASSERT_H_
  12. #define _CMDASSERT_H_
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #ifdef NDEBUG
  17. #undef cmdassert
  18. #define cmdassert(EX) ((void)0)
  19. #else
  20. extern void __cmdassert(const char *, const char *, int);
  21. #ifdef __ANSI_CPP__
  22. #define cmdassert(EX)  if (!(EX)) { 
  23.          __cmdassert( # EX , __FILE__, __LINE__); 
  24.          interp->result = "Non-fatal assertion error in command!"; 
  25.          return TCL_ERROR; 
  26. }
  27.          
  28. #else
  29. #define cmdassert(EX)  if (!(EX)) { 
  30.          __cmdassert("EX", __FILE__, __LINE__); 
  31.          interp->result = "Non-fatal assertion error in command!"; 
  32.          return TCL_ERROR; 
  33. }
  34. #endif
  35. #endif /* NDEBUG */
  36. #ifdef __cplusplus
  37. }
  38. #endif
  39. #endif /* _CMDASSERT_H_ */