📄 stdlib.h
字号:
/* * stdlib.h * This file has no copyright assigned and is placed in the Public Domain. * This file is a part of the mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within the package. * * Definitions for common types, variables, and functions. * */#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#if !defined (__STRICT_ANSI__)/* * 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* __cdecl __MINGW_NOTHROW __p___argc(void);extern char*** __cdecl __MINGW_NOTHROW __p___argv(void);extern wchar_t*** __cdecl __MINGW_NOTHROW __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 */#endif /* __STRICT_ANSI__ *//* * Also defined in ctype.h. */#ifndef MB_CUR_MAX#ifdef __DECLSPEC_SUPPORTED# ifdef __MSVCRT__# define MB_CUR_MAX __mb_cur_max __MINGW_IMPORT int __mb_cur_max;# else /* not __MSVCRT */# define MB_CUR_MAX __mb_cur_max_dll __MINGW_IMPORT int __mb_cur_max_dll;# endif /* not __MSVCRT */#else /* ! __DECLSPEC_SUPPORTED */# ifdef __MSVCRT__ extern int* _imp____mbcur_max;# define MB_CUR_MAX (*_imp____mb_cur_max)# else /* not __MSVCRT */ extern int* _imp____mbcur_max_dll;# define MB_CUR_MAX (*_imp____mb_cur_max_dll)# endif /* not __MSVCRT */#endif /* __DECLSPEC_SUPPORTED */#endif /* MB_CUR_MAX *//* * MS likes to declare errno in stdlib.h as well. */#ifdef _UWIN#undef errnoextern int errno;#else _CRTIMP int* __cdecl __MINGW_NOTHROW _errno(void);#define errno (*_errno())#endif _CRTIMP int* __cdecl __MINGW_NOTHROW __doserrno(void);#define _doserrno (*__doserrno())#if !defined (__STRICT_ANSI__)/* * Use environ from the DLL, not as a global. */#ifdef __MSVCRT__ extern _CRTIMP char *** __cdecl __MINGW_NOTHROW __p__environ(void); extern _CRTIMP wchar_t *** __cdecl __MINGW_NOTHROW __p__wenviron(void);# 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. */#ifdef __MSVCRT__/* msvcrtxx.dll */extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int* __p__osver(void);extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int* __p__winver(void);extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int* __p__winmajor(void);extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int* __p__winminor(void);#ifndef __DECLSPEC_SUPPORTED# define _osver (*__p__osver())# define _winver (*__p__winver())# define _winmajor (*__p__winmajor())# define _winminor (*__p__winminor())#else__MINGW_IMPORT unsigned int _osver;__MINGW_IMPORT unsigned int _winver;__MINGW_IMPORT unsigned int _winmajor;__MINGW_IMPORT unsigned int _winminor;#endif /* __DECLSPEC_SUPPORTED */#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#if defined __MSVCRT__/* although the _pgmptr is exported as DATA, * be safe and use the access function __p__pgmptr() to get it. */_CRTIMP char** __cdecl __MINGW_NOTHROW __p__pgmptr(void);#define _pgmptr (*__p__pgmptr())_CRTIMP wchar_t** __cdecl __MINGW_NOTHROW __p__wpgmptr(void);#define _wpgmptr (*__p__wpgmptr())#else /* ! __MSVCRT__ */# ifndef __DECLSPEC_SUPPORTED extern char** __imp__pgmptr_dll;# define _pgmptr (*_imp___pgmptr_dll)# else /* __DECLSPEC_SUPPORTED */ __MINGW_IMPORT char* _pgmptr_dll;# define _pgmptr _pgmptr_dll# endif /* __DECLSPEC_SUPPORTED *//* no wide version in CRTDLL */#endif /* __MSVCRT__ *//* * This variable determines the default file mode. * TODO: Which flags work? */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -