This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/dm/include/stddef.h

103 lines
1.7 KiB
C

/* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
#if __SC__ || __RCC__
#pragma once
#endif
#ifndef __STDDEF_H
#define __STDDEF_H 1
#if __cplusplus
extern "C" {
#endif
/* Define _CRTAPI1 (for compatibility with the NT SDK) */
#ifndef _CRTAPI1
#define _CRTAPI1 __cdecl
#endif
/* Define _CRTAPI2 (for compatibility with the NT SDK) */
#ifndef _CRTAPI2
#define _CRTAPI2 __cdecl
#endif
/* Define CRTIMP */
#ifndef _CRTIMP
#if defined(_WIN32) && defined(_DLL)
#define _CRTIMP __declspec(dllimport)
#else
#define _CRTIMP
#endif
#endif
#if __OS2__ && __INTSIZE == 4
#define __CLIB __stdcall
#else
#define __CLIB __cdecl
#endif
#if defined(_MT) || defined(_DLL) || __cplusplus
extern int * __CLIB _errno(void);
#define errno (*_errno())
#else
extern int __cdecl errno;
#endif
#if defined(_MT)
#if __INTSIZE == 4
unsigned long * __CLIB __threadid(void);
#if __NT__
#define _threadid (__threadid())
#else
/* MOV EAX,FS:[0Ch] */
#define _threadid ((unsigned long *)__emit__(0x64,0xA1,0x0C,0,0,0))
#endif
#else
extern int __far * __cdecl _threadid;
#endif
#endif
#if _M_AMD64
typedef long long ptrdiff_t;
typedef unsigned long long size_t;
#else
typedef int ptrdiff_t;
typedef unsigned size_t;
#endif
#if __cplusplus
typedef decltype(nullptr) nullptr_t;
#endif
#if !defined(_WCHAR_T_DEFINED)
typedef unsigned short wchar_t;
#define _WCHAR_T_DEFINED 1
#endif
#define offsetof(t,i) ((size_t)((char *)&((t *)0)->i - (char *)0))
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
#if __cplusplus && !__NEW_DEFINED
#define __NEW_DEFINED 1
extern "C++" {
void *operator new(size_t s, void *at);
#if _ENABLE_ARRAYNEW
void *operator new[](size_t s, void *at);
#endif
}
#endif
#if __cplusplus
}
#endif
#endif