⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stdlib.h

📁 c++编程宝典源码及Quincy99编译器 是《标准C++编程宝典》电子工业出版社的光盘
💻 H
字号:
/* * stdlib.h * * Definitions for common types, variables, and functions. * * This file is part of the Mingw32 package. * * Contributors: *  Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp> * *  THIS SOFTWARE IS NOT COPYRIGHTED * *  This source code is offered for use in the public domain. You may *  use, modify or distribute it freely. * *  This code is distributed in the hope that it will be useful but *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY *  DISCLAMED. This includes but is not limited to warranties of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * $Revision: 1.16 $ * $Author: khan $ * $Date: 1999/06/15 00:47:30 $ * */#ifndef _STDLIB_H_#define _STDLIB_H_/* All the headers include this file. */#include <_mingw.h>#define __need_size_t#define __need_wchar_t#define __need_NULL#ifndef RC_INVOKED#include <stddef.h>#endif /* RC_INVOKED *//* * RAND_MAX is the maximum value that may be returned by rand. * The minimum is zero. */#define	RAND_MAX	0x7FFF/* * These values may be used as exit status codes. */#define	EXIT_SUCCESS	0#define	EXIT_FAILURE	-1/* * Definitions for path name functions. * NOTE: All of these values have simply been chosen to be conservatively high. *       Remember that with long file names we can no longer depend on *       extensions being short. */#ifndef __STRICT_ANSI__#ifndef MAX_PATH#define	MAX_PATH	(260)#endif#define	_MAX_PATH	MAX_PATH#define	_MAX_DRIVE	(3)#define	_MAX_DIR	256#define	_MAX_FNAME	256#define	_MAX_EXT	256#endif	/* Not __STRICT_ANSI__ */#ifndef RC_INVOKED#ifdef __cplusplusextern "C" {#endif/* * This seems like a convenient place to declare these variables, which * give programs using WinMain (or main for that matter) access to main-ish * argc and argv. environ is a pointer to a table of environment variables. * NOTE: Strings in _argv and environ are ANSI strings. */extern int	_argc;extern char**	_argv;/* imports from runtime dll of the above variables */#ifdef __MSVCRT__extern int*     __p___argc(void);extern char***   __p___argv(void);extern wchar_t***   __p___wargv(void);#define __argc (*__p___argc())#define __argv (*__p___argv())#define __wargv (*__p___wargv())#else /* !MSVCRT */#ifndef __DECLSPEC_SUPPORTEDextern int*    __imp___argc_dll;extern char***  __imp___argv_dll;#define __argc (*__imp___argc_dll)#define __argv (*__imp___argv_dll)#else /* __DECLSPEC_SUPPORTED */__MINGW_IMPORT int    __argc_dll;__MINGW_IMPORT char**  __argv_dll;#define __argc __argc_dll#define __argv __argv_dll#endif /* __DECLSPEC_SUPPORTED */#endif /* __MSVCRT *//*  * MS likes to declare errno in stdlib.h as well.  */#ifdef _UWIN#undef errnoextern int errno;#elseint*	_errno();#define	errno		(*_errno())#endifint*	__doserrno();#define	_doserrno	(*__doserrno())/* * Use environ from the DLL, not as a global.  */#ifdef __MSVCRT__  extern char *** __p__environ();  extern wchar_t *** __p__wenviron();# define _environ (*__p__environ())# define _wenviron (*__p__wenviron())#else /* ! __MSVCRT__ */# ifndef __DECLSPEC_SUPPORTED    extern char *** __imp__environ_dll;#   define _environ (*__imp__environ_dll)# else /* __DECLSPEC_SUPPORTED */    __MINGW_IMPORT char ** _environ_dll;#   define _environ _environ_dll# endif /* __DECLSPEC_SUPPORTED */#endif /* ! __MSVCRT__ */#define environ _environ#ifdef	__MSVCRT__/* One of the MSVCRTxx libraries */#ifndef __DECLSPEC_SUPPORTED  extern int*	__imp__sys_nerr;# define	sys_nerr	(*__imp__sys_nerr)#else /* __DECLSPEC_SUPPORTED */  __MINGW_IMPORT int	_sys_nerr;# ifndef _UWIN#   define	sys_nerr	_sys_nerr# endif /* _UWIN */#endif /* __DECLSPEC_SUPPORTED */#else /* ! __MSVCRT__ *//* CRTDLL run time library */#ifndef __DECLSPEC_SUPPORTED  extern int*	__imp__sys_nerr_dll;# define sys_nerr	(*__imp__sys_nerr_dll)#else /* __DECLSPEC_SUPPORTED */  __MINGW_IMPORT int	_sys_nerr_dll;# define sys_nerr	_sys_nerr_dll#endif /* __DECLSPEC_SUPPORTED */#endif /* ! __MSVCRT__ */#ifndef __DECLSPEC_SUPPORTEDextern char***	__imp__sys_errlist;#define	sys_errlist	(*__imp__sys_errlist)#else /* __DECLSPEC_SUPPORTED */__MINGW_IMPORT char*	_sys_errlist[];#ifndef _UWIN#define	sys_errlist	_sys_errlist#endif /* _UWIN */#endif /* __DECLSPEC_SUPPORTED *//* * OS version and such constants. */#ifndef __STRICT_ANSI__#ifdef	__MSVCRT__/* msvcrtxx.dll */extern unsigned int*	__p__osver();extern unsigned int*	__p__winver();extern unsigned int*	__p__winmajor();extern unsigned int*	__p__winminor();#define _osver		(*__p__osver())#define _winver		(*__p__winver())#define _winmajor	(*__p__winmajor())#define _winminor	(*__p__winminor())#else/* Not msvcrtxx.dll, thus crtdll.dll */#ifndef __DECLSPEC_SUPPORTEDextern unsigned int*	_imp___osver_dll;extern unsigned int*	_imp___winver_dll;extern unsigned int*	_imp___winmajor_dll;extern unsigned int*	_imp___winminor_dll;#define _osver		(*_imp___osver_dll)#define _winver		(*_imp___winver_dll)#define _winmajor	(*_imp___winmajor_dll)#define _winminor	(*_imp___winminor_dll)#else /* __DECLSPEC_SUPPORTED */__MINGW_IMPORT unsigned int	_osver_dll;__MINGW_IMPORT unsigned int	_winver_dll;__MINGW_IMPORT unsigned int	_winmajor_dll;__MINGW_IMPORT unsigned int	_winminor_dll;#define _osver		_osver_dll#define _winver		_winver_dll#define _winmajor	_winmajor_dll#define _winminor	_winminor_dll#endif /* __DECLSPEC_SUPPORTED */#endif#endif /* Not __STRICT_ANSI__ */#ifdef	__GNUC__#define	_ATTRIB_NORETURN	__attribute__ ((noreturn))#else	/* Not __GNUC__ */#define	_ATTRIB_NORETURN#endif	/* __GNUC__ */double	atof	(const char* szNumber);int	atoi	(const char* szNumber);long	atol	(const char* szNumber);double	strtod	(const char* szNumber, char** pszAfterNumber);double	wcstod	(const wchar_t* wsNumber, wchar_t** pwsAfterNumber);long	strtol	(const char* szNumber, char** pszAfterNumber, int nBase);long	wcstol	(const wchar_t* wsNumber, wchar_t** pwsAfterNumber, int nBase);unsigned long	strtoul	(const char* szNumber, char** pszAfterNumber,			int nBase);unsigned long	wcstoul (const wchar_t* wsNumber, wchar_t** pwsAfterNumber,			int nBase);size_t	wcstombs	(char* mbsDest, const wchar_t* wsConvert, size_t size);int	wctomb		(char* mbDest, wchar_t wc);int	mblen		(const char* mbs, size_t sizeString);size_t	mbstowcs	(wchar_t* wcaDest, const char* mbsConvert,			 size_t size);int	mbtowc		(wchar_t* wcDest, const char* mbConvert, size_t size);int	rand	();void	srand	(unsigned int nSeed);void*	calloc	(size_t sizeObjCnt, size_t sizeObject);void*	malloc	(size_t	sizeObject);void*	realloc	(void* pObject, size_t sizeNew);void	free	(void* pObject);void	abort	() _ATTRIB_NORETURN;void	exit	(int nStatus) _ATTRIB_NORETURN;int	atexit	(void (*pfuncExitProcessing)(void));int	system	(const char* szCommand);char*	getenv	(const char* szVarName);typedef	int (*_pfunccmp_t)(const void*, const void*);void*	bsearch	(const void* pKey, const void* pBase, size_t cntObjects,		size_t sizeObject, _pfunccmp_t pfuncCmp);void	qsort	(const void* pBase, size_t cntObjects, size_t sizeObject,		_pfunccmp_t pfuncCmp);int	abs	(int n);long	labs	(long n);/* * div_t and ldiv_t are structures used to return the results of div and * ldiv. * * NOTE: div and ldiv appear not to work correctly unless *       -fno-pcc-struct-return is specified. This is included in the *       mingw32 specs file. */typedef struct { int quot, rem; } div_t;typedef struct { long quot, rem; } ldiv_t;div_t	div	(int nNumerator, int nDenominator);ldiv_t	ldiv	(long lNumerator, long lDenominator);#ifndef	__STRICT_ANSI__/* * NOTE: Officially the three following functions are obsolete. The Win32 API *       functions SetErrorMode, Beep and Sleep are their replacements. */void	_beep (unsigned int, unsigned int);void	_seterrormode (int nMode);void	_sleep (unsigned long ulTime);void	_exit	(int nStatus) _ATTRIB_NORETURN;int	_putenv	(const char* szNameEqValue);void	_searchenv (const char* szFileName, const char* szVar,		char* szFullPathBuf);char*	_itoa (int nValue, char* sz, int nRadix);char*	_ltoa (long lnValue, char* sz, int nRadix);char*	_ecvt (double dValue, int nDig, int* pnDec, int* pnSign);char*	_fcvt (double dValue, int nDig, int* pnDec, int* pnSign);char*	_gcvt (double dValue, int nDec, char* caBuf);void	_makepath (char* caPath, const char* szDrive, const char* szDir,		const char* szName, const char* szExtension);void	_splitpath (const char* szPath, char* caDrive, char* caDir,		char* caName, char* caExtension);char*	_fullpath (char* caBuf, const char* szPath, size_t sizeMax);int	_wtoi (const wchar_t *);long	_wtol (const wchar_t *);char*	_i64toa(__int64, char *, int);char*	_ui64toa(unsigned __int64, char *, int);__int64	_atoi64(const char *);wchar_t* _i64tow(__int64, wchar_t *, int);wchar_t* _ui64tow(unsigned __int64, wchar_t *, int);__int64	_wtoi64(const wchar_t *);#ifndef	_NO_OLDNAMESint	putenv (const char* szNameEqValue);void	searchenv (const char* szFileName, const char* szVar,		char* szFullPathBuf);char*	itoa (int nValue, char* sz, int nRadix);char*	ltoa (long lnValue, char* sz, int nRadix);#ifndef _UWINchar*	ecvt (double dValue, int nDig, int* pnDec, int* pnSign);char*	fcvt (double dValue, int nDig, int* pnDec, int* pnSign);char*	gcvt (double dValue, int nDec, char* caBuf);#endif /* _UWIN */#endif	/* Not _NO_OLDNAMES */#endif	/* Not __STRICT_ANSI__ *//* * Undefine the no return attribute used in some function definitions */#undef	_ATTRIB_NORETURN#ifdef __cplusplus}#endif#endif	/* Not RC_INVOKED */#endif	/* Not _STDLIB_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -