44 lines
904 B
C
44 lines
904 B
C
/***
|
|
*assert.h - define the assert macro
|
|
*
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
*
|
|
*Purpose:
|
|
* Defines the assert(exp) macro.
|
|
* [ANSI/System V]
|
|
*
|
|
* [Public]
|
|
*
|
|
****/
|
|
|
|
#ifdef _CRTBLD
|
|
#ifndef _ASSERT_OK
|
|
#error assert.h not for CRT internal use, use dbgint.h
|
|
#endif /* _ASSERT_OK */
|
|
#include <cruntime.h>
|
|
#endif /* _CRTBLD */
|
|
|
|
#include <crtdefs.h>
|
|
|
|
#undef assert
|
|
|
|
#ifdef NDEBUG
|
|
|
|
#define assert(_Expression) ((void)0)
|
|
|
|
#else /* NDEBUG */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
_CRTIMP void __cdecl _wassert(_In_z_ const wchar_t * _Message, _In_z_ const wchar_t *_File, _In_ unsigned _Line);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#define assert(_Expression) (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) )
|
|
|
|
#endif /* NDEBUG */
|