/*** *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 #endif /* _CRTBLD */ #include #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 */