home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 April / PCWorld_2000-04_cd.bin / Software / Servis / Devc / _SETUP.4 / Group3 / assert.h < prev    next >
C/C++ Source or Header  |  1999-11-07  |  1KB  |  72 lines

  1. /* 
  2.  * assert.h
  3.  *
  4.  * Define the assert macro for debug output.
  5.  *
  6.  * This file is part of the Mingw32 package.
  7.  *
  8.  * Contributors:
  9.  *  Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
  10.  *
  11.  *  THIS SOFTWARE IS NOT COPYRIGHTED
  12.  *
  13.  *  This source code is offered for use in the public domain. You may
  14.  *  use, modify or distribute it freely.
  15.  *
  16.  *  This code is distributed in the hope that it will be useful but
  17.  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
  18.  *  DISCLAMED. This includes but is not limited to warranties of
  19.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  20.  *
  21.  * $Revision: 1.2 $
  22.  * $Author: khan $
  23.  * $Date: 1998/09/03 15:07:03 $
  24.  *
  25.  */
  26.  
  27. #ifndef _ASSERT_H_
  28. #define    _ASSERT_H_
  29.  
  30. /* All the headers include this file. */
  31. #include <_mingw.h>
  32.  
  33. #ifndef RC_INVOKED
  34.  
  35. #ifdef    __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #ifdef NDEBUG
  40.  
  41. /*
  42.  * If not debugging, assert does nothing.
  43.  */
  44. #define assert(x)    ((void)0);
  45.  
  46. #else /* debugging enabled */
  47.  
  48. /*
  49.  * CRTDLL nicely supplies a function which does the actual output and
  50.  * call to abort.
  51.  */
  52. void    _assert (const char* szExpression, const char* szFileName, int nLine)
  53. #ifdef    __GNUC__
  54.     __attribute__ ((noreturn))
  55. #endif
  56.     ;
  57.  
  58. /*
  59.  * Definition of the assert macro.
  60.  */
  61. #define assert(e)       ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__))
  62. #endif    /* NDEBUG */
  63.  
  64. #ifdef    __cplusplus
  65. }
  66. #endif
  67.  
  68. #endif /* Not RC_INVOKED */
  69.  
  70. #endif /* Not _ASSERT_H_ */
  71.  
  72.