精华内容
下载资源
问答
  • C语言中的stdlib头文件解析

    千次阅读 多人点赞 2018-01-14 14:06:39
    stdlib 头文件即standard library(标准库)头文件,里面包含了C、C++语言的最常用的系统函数。包括动态内存管理、随机数生成、与环境之间的通信、整数运算、搜索、排序及转换等。 stdlib .h 头文件定义了四个变量...

    stdlib 头文件即standard library(标准库)头文件,里面包含了C、C++语言的最常用的系统函数。包括动态内存管理、随机数生成、与环境之间的通信、整数运算、搜索、排序及转换等。
    stdlib .h 头文件定义了四个变量类型、五个宏和各种通用工具函数。

    4个变量:

    size_t
    wchar_t(一个宽字符常量大小的整数类型)
    div_t(div函数返回的结构)
    ldiv_t(ldiv 函数返回的结构)。
    

    5个宏:

    NULL;
    EXIT_FAILURE;   exit 函数失败时要返回的值
    EXIT_SUCCESS;   exit 函数成功时要返回的值
    RAND_MAX;       rand 函数返回的最大值;
    MB_CUR_MAX  在多字节字符集中的最大字符数
    

    一些主要的函数

    •atof函数

    函数原型:double atof (const char* str);
    函数描述:把参数 str 所指向的字符串转换为一个浮点数。
    函数返回:函数返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)。
    特点:
    1:函数会不理会字符串开始之后的空格,直到遇到第一个有效字符,从第一个有效字符开始,到最后一个有效字符为止,函数会将这段字符转换为浮点数。最后一个有效字符之后的字符不会影响该函数。
    2:对于C90,有效字符包括以下条件:可以以+-字符作为字符串的开始;字符串中可以出现(不超过)一个.符;可以出现表示指数形式的E或e字符,且其后可以跟一个有效字符串。
    3:对于C99/C11,除C90的条件外,还支持0x/0X前缀,INF,NAN等。

    •atoi函数

    函数原型:int atoi(const char *str);
    函数描述:把参数 str 所指向的字符串转换为一个整数。
    函数返回:返回转换后的长整数,如果没有执行有效的转换,则返回零。
    特点:
    1:函数会忽略字符串刚开始的空格,直到遇到第一个有效字符。
    2:+和-位于第一个字符是被认为是有效字符。最后一个有效字符之后的字符不会影响该函数。
    3:若转换后的数据长度超出int所表示的最大范围,将产生未定义的行为。

    •atol函数

    函数原型:long int atol(const char *str);
    函数描述:把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。
    函数返回:返回转换后的长整数,如果没有执行有效的转换,则返回零。
    特点:与atoi一致。

    •strtod函数

    函数原型:double strtod(const char *str, char **endptr);
    函数描述:把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。
    函数返回:返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)。
    特点:
    1:函数会忽略字符串刚开始的空格,直到遇到第一个有效字符。
    2:如果 endptr 不为空,则它指向转换中最后一个有效字符后的字符所在的地址。
    3:实际使用中常将endptr设为null,表示不关注无效字符。

    •strtol函数

    函数原型:long int strtol(const char *str, char **endptr, int base);
    函数描述:把参数 str 所指向的字符串根据给定的 base 转换为一个长整数,base 必须介于 2 和 36(包含)之间,或者是特殊值 0。
    函数返回:函数返回转换后的长整数,如果没有执行有效的转换,则返回一个零值。
    特点:
    1.对于base,若base为0,则要求:首字母可以是(+/-),若首字母不是0或0x/0X,则必须是十进制的其他字符,且按照10进制进行转换;若首字母是0或0x/0X,则分别按照8进制或16进制转换,开始的0及x/X会被忽略,在此过程中,超出8进制和16进制的字符会被认为是无效字符(如0912会被转化为0,因为会按照8进制来转换,9被认为是无效字符)。
    2:若为36进制,则为从0~z/Z。
    3:其余特点参考strtod。

    •strtoul函数

    函数原型:unsigned long int strtoul(const char *str, char **endptr, int base);
    函数描述:把参数 str 所指向的字符串根据给定的 base 转换为一个无符号长整数,base 必须介于 2 和 36(包含)之间,或者是特殊值 0。
    函数返回:返回转换后的长整数,如果没有执行有效的转换,则返回一个零值。
    特点:参考strtol

    •calloc函数

    函数原型:void *calloc(size_t nitems, size_t size);
    函数描述:分配所需的内存空间,并返回一个指向它的指针。nitems表示要被分配的元素个数。size表示每个元素的大小。
    函数返回:返回一个指针,指向已分配的内存。如果请求失败,则返回 NULL。
    特点:
    1:malloc 和 calloc 之间的不同点是,malloc 不会设置内存为零,而 calloc 会设置分配的内存为零。

    •free函数

    函数原型:void free(void *ptr);
    函数描述:释放之前调用 calloc、malloc 或 realloc 所分配的内存空间。
    函数返回:不返回任何值。
    特点:
    1:如果传递的参数是一个空指针,则不会执行任何动作。
    2:如果指针指向的内存不是由calloc、malloc 或 realloc 所分配,则函数会发生未定义的结果。
    3:函数不会改变指针的值(指向),只是现在指向的内存区域无效。(Notice that this function does not change the value of ptr itself, hence it still points to the same (now invalid) location.)

    •malloc函数

    函数原型:void *malloc(size_t size);
    函数描述:分配所需的内存空间,并返回一个指向它的指针。size表示要申请的字节数。
    函数返回:返回一个指针 ,指向已分配大小的内存。如果请求失败,则返回NULL。

    •realloc函数

    函数原型:void *realloc(void *ptr, size_t size) ;
    函数描述:尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。
    函数返回:返回一个指针 ,指向已分配大小的内存。如果请求失败,则返回NULL。
    特点:
    1:ptr指针指向一个要重新分配内存的内存块,该内存块之前是通过调用 malloc、calloc 或 realloc 进行分配内存的。如果为空指针,则会分配一个新的内存块,且函数返回一个指向它的指针(类似malloc)。
    2:新的内存块的大小,以字节为单位。如果大小为 0,且 ptr 指向一个已存在的内存块,则 ptr 所指向的内存块会被释放,并返回一个空指针。
    3:如果请求失败,则返回NULL,此时不影响ptr所指向的内存。

    •abort函数

    函数原型:void abort(void);
    函数描述:异常中止程序执行,直接从调用的地方跳出。
    函数返回:无返回。
    特点:
    1:abort函数导致所有的流被关闭和冲洗。
    2:abort函数用以解除进程对SIGABRT信号的阻止。

    •atexit函数

    函数原型:int atexit(void (*func)(void)) ;
    函数描述:当程序正常终止时,调用指定的函数func。
    函数返回:如果函数成功注册,则该函数返回零,否则返回一个非零值。
    特点:
    1:可以在任何地方注册你的终止函数,但它会在程序终止的时候被调用。
    2:若一个程序中出现多次atexit函数,则其按照栈的方式执行(最后一个先执行,以此类推)。

    •exit函数

    函数原型:void exit(int status);
    函数描述:(正常)立即终止调用进程。status – 返回给父进程的状态值。
    对于status,如果其为0或者EXIT_SUCCESS,表示成功;如果其为EXIT_FAILURE,表示失败。
    函数返回:无返回。
    特点:
    1:任何属于该进程的打开的文件描述符都会被关闭,该进程的子进程由进程 1 继承,初始化,且会向父进程发送一个 SIGCHLD 信号。

    •getenv函数

    函数原型:char *getenv(const char *name);
    函数描述:搜索name所指向的环境字符串,并返回相关的值给字符串。
    函数返回:返回一个以 null 结尾的字符串,该字符串为被请求环境变量的值。如果该环境变量不存在,则返回 NULL。

    •system函数

    函数原型:int system(const char *command);
    函数描述:把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。
    函数返回:如果发生错误,则返回值为-1,否则返回命令的状态。
    特点:
    1:如果command为null,则只是为了测试指令系统是否有效,若有效,返回非0,否则返回0。

    •bsearch函数

    函数原型:void bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void , const void *));
    函数描述:对 nitems 对象的数组执行二分查找,base 指向进行查找的数组,key 指向要查找的元素,size 指定数组中每个元素的大小。数组的内容应根据 compar 所对应的比较函数升序排序。
    函数返回:如果查找成功,该函数返回一个指向数组中匹配元素的指针,否则返回空指针。
    特点:
    1:对于compar函数,若返回值小于0,表示要查找的值小于当前值;若返回值等于0,表示要查找的值等于当前值;若返回值大于0,表示要查找的值大于当前值。
    2:若数组中有多个满足条件的值,则函数可能返回任意一个,不一定是第一个。
    3:复杂度log2(num)+2。

    •qsort函数

    函数原型:void qsort(void base, size_t nitems, size_t size, int (*compar)(const void , const void*));
    函数描述:对数组进行排序。base指向要排序的数组的第一个元素的指针。nitems 由 base 指向的数组中元素的个数。size数组中每个元素的大小,以字节为单位。compar 用来比较两个元素的函数。
    返回值:无返回值。
    特点:
    1:不稳定排序(其实是基于快速排序的操作)。
    2:复杂度num*log2(num)。

    •abs函数与labs函数

    函数原型:int abs(int x);long int abs(long int x);
    函数描述:取x得绝对值。
    函数返回:返回x的绝对值。
    特点:
    1:对于浮点型及负数的取绝对值,分别定义在头文件cmath.h及头问价complex.h中。

    •div函数与ldiv函数

    函数原型:div_t div(int numer, int denom); div_t div(long int numer, long int denom);
    函数描述:把 numer(分子)除以 denom(分母)。
    函数返回:返回定义在

    rand函数

    函数原型:int rand(void) ;
    函数描述:伪随机数生成函数。
    函数返回:返回一个范围在 0 到 RAND_MAX 之间的伪随机数。
    特点:
    1:RAND_MAX 是一个常量,它的默认值在不同的实现中会有所不同,但是值至少是 32767。
    2:若随机数生成种子相同,则每次调用rand()生成的伪随机数是相同的。
    3:若使用rand函数前没有调用srand函数,系统会自动调用srand函数。

    •srand函数

    函数原型:void srand(unsigned int seed);
    函数描述:播种由函数rand使用的随机数发生器。seed是一个整型值,用于伪随机数生成算法播种。
    函数返回:无返回。
    特点:
    1:不同的seed会使得此后调用rand函数生成不同的伪随机数。
    2:如果seed设置为1,rand函数将生成和之前一样的伪随机序列。
    3:为了保持seed的独特性,通常的做法是使用time函数返回作为seed值。如srand(time(&t));

    此外,stdlib头文件还有一些处理多字节的函数,在使用过程中可自行查阅。

    参考:

    1. http://www.runoob.com/cprogramming/c-standard-library-stdlib-h.html
    2. http://www.cplusplus.com/reference/cstdlib/
    展开全文
  • c语言_头文件_stdlib

    2014-03-08 22:39:00
    stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C、C++语言的最常用的系统函数 该文件包含了C语言标准库函数的定义 stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、...

    简介

    stdlib 头文件即standard library标准库头文件

    stdlib 头文件里包含了C、C++语言的最常用的系统函数

    该文件包含了C语言标准库函数的定义

    stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 具体的内容你自己可以打开编译器的include目录里面的stdlib.h头文件看看。

    内容

      1 /*****stdlib.h - declarations/definitions for commonly used library functions**       Copyright (c) Microsoft Corporation. All rights reserved.**Purpose:*       This include file contains the function declarations for commonly*       used library functions which either don't fit somewhere else, or,*       cannot be declared in the normal place for other reasons.*       [ANSI]**       [Public]*****/
      2 #if     _MSC_VER > 1000#pragma once#endif
      3 #ifndef _INC_STDLIB#define _INC_STDLIB
      4 #include <crtdefs.h>#include <limits.h>
      5 #ifdef  _MSC_VER/** * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */#pragma pack(push,_CRT_PACKING)#endif  /** _MSC_VER */
      6 #ifdef  __cplusplusextern "C" {#endif
      7 /** Define NULL pointer value */#ifndef NULL#ifdef __cplusplus#define NULL    0#else#define NULL    ((void *)0)#endif#endif
      8 /** Definition of the argument values for the exit() function */
      9 #define EXIT_SUCCESS    0#define EXIT_FAILURE    1
     10 #ifndef _ONEXIT_T_DEFINED
     11 #if !defined (_M_CEE_PURE) || (_MSC_VER < 1400)typedef int (__cdecl * _onexit_t)(void);#elsetypedef int (__clrcall * _onexit_t)(void);typedef _onexit_t _onexit_m_t;#endif
     12 #if defined (_M_CEE_MIXED) && (_MSC_VER >= 1400)typedef int (__clrcall * _onexit_m_t)(void);#endif
     13 #if     !__STDC__/** Non-ANSI name for compatibility */#define onexit_t _onexit_t#endif
     14 #define _ONEXIT_T_DEFINED#endif
     15 /** Data structure definitions for div and ldiv runtimes. */
     16 #ifndef _DIV_T_DEFINED
     17 typedef struct _div_t {        int quot;        int rem;} div_t;
     18 typedef struct _ldiv_t {        long quot;        long rem;} ldiv_t;
     19 #define _DIV_T_DEFINED#endif
     20 /** * structs used to fool the compiler into not generating floating point * instructions when copying and pushing [long] double values */
     21 #ifndef _CRT_DOUBLE_DEC
     22 #ifndef _LDSUPPORT
     23 #pragma pack(4)typedef struct {    unsigned char ld[10];} _LDOUBLE;#pragma pack()
     24 #define _PTR_LD(x) ((unsigned char  *)(&(x)->ld))
     25 #else
     26 /** push and pop long, which is #defined as __int64 by a spec2k test */#pragma push_macro("long")#undef longtypedef long double _LDOUBLE;#pragma pop_macro("long")
     27 #define _PTR_LD(x) ((unsigned char  *)(x))
     28 #endif
     29 typedef struct {        double x;} _CRT_DOUBLE;
     30 typedef struct {    float f;} _CRT_FLOAT;
     31 /** push and pop long, which is #defined as __int64 by a spec2k test */#pragma push_macro("long")#undef long
     32 typedef struct {        /**         * Assume there is a long double type         */        long double x;} _LONGDOUBLE;
     33 #pragma pop_macro("long")
     34 #pragma pack(4)typedef struct {    unsigned char ld12[12];} _LDBL12;#pragma pack()
     35 #define _CRT_DOUBLE_DEC#endif
     36 /** Maximum value that can be returned by the rand function. */
     37 #define RAND_MAX 0x7fff
     38 /** * Maximum number of bytes in multi-byte character in the current locale * (also defined in ctype.h). */#ifndef MB_CUR_MAX#if defined (_MT) && (defined (_M_CEE_PURE))#define MB_CUR_MAX ___mb_cur_max_func()#else#define MB_CUR_MAX __mb_cur_max#endif#if !defined(_M_CEE_PURE)_CRTIMP extern int __mb_cur_max;#else_CRTIMP int* __cdecl __p___mb_cur_max();#define __mb_cur_max (*__p___mb_cur_max())#endif /** !defined(_M_CEE_PURE) */_CRTIMP int __cdecl ___mb_cur_max_func(void);_CRTIMP int __cdecl ___mb_cur_max_l_func(_locale_t);#endif  /** MB_CUR_MAX */
     39 /** Minimum and maximum macros */
     40 #define __max(a,b)  (((a) > (b)) ? (a) : (b))#define __min(a,b)  (((a) < (b)) ? (a) : (b))
     41 /** * Sizes for buffers used by the _makepath() and _splitpath() functions. * note that the sizes include space for 0-terminator */#define _MAX_PATH   260 /** max. length of full pathname */#define _MAX_DRIVE  3   /** max. length of drive component */#define _MAX_DIR    256 /** max. length of path component */#define _MAX_FNAME  256 /** max. length of file name component */#define _MAX_EXT    256 /** max. length of extension component */
     42 /** * Argument values for _set_error_mode(). */#define _OUT_TO_DEFAULT 0#define _OUT_TO_STDERR  1#define _OUT_TO_MSGBOX  2#define _REPORT_ERRMODE 3
     43 /** * Argument values for _set_abort_behavior(). */#define _WRITE_ABORT_MSG    0x1#define _CALL_REPORTFAULT   0x2
     44 /** * Sizes for buffers used by the getenv/putenv family of functions. */#define _MAX_ENV 32767  
     45 /** External variable declarations */#ifndef _CRT_ERRNO_DEFINED#define _CRT_ERRNO_DEFINED#ifdef _NTSUBSET_extern int errno;#else /** _NTSUBSET_ */_CRTIMP extern int * __cdecl _errno(void);#define errno   (*_errno())
     46 errno_t __cdecl _set_errno(__in int _Value);errno_t __cdecl _get_errno(__out int * _Value);
     47 #endif /** _NTSUBSET_ */#endif /** _CRT_ERRNO_DEFINED */
     48 #ifndef _NTSUBSET__CRTIMP unsigned long * __cdecl __doserrno(void);#define _doserrno   (*__doserrno())
     49 errno_t __cdecl _set_doserrno(__in unsigned long _Value);errno_t __cdecl _get_doserrno(__out unsigned long * _Value);#endif /** _NTSUBSET_ */
     50 #define _CRT_SYS_ERR_DATA
     51 #ifndef _CRT_SYS_ERR_DATA
     52 /** you can't modify this, but it is non-const for backcompat */_CRTIMP _CRT_INSECURE_DEPRECATE(strerror) char ** __cdecl __sys_errlist(void);#define _sys_errlist (__sys_errlist())
     53 _CRTIMP _CRT_INSECURE_DEPRECATE(strerror) int * __cdecl __sys_nerr(void);#define _sys_nerr (*__sys_nerr())
     54 #else /** _CRT_SYS_ERR_DATA */
     55 #ifndef _M_CEE_PURE
     56 _CRTIMP _CRT_INSECURE_DEPRECATE(strerror) extern char const * const _sys_errlist[];   /** perror error message table */_CRTIMP _CRT_INSECURE_DEPRECATE(strerror) extern const int _sys_nerr;           /** # of entries in sys_errlist table */
     57 #endif
     58 #endif /** _CRT_SYS_ERR_DATA */
     59 #if     defined(_DLL) && defined(_M_IX86)
     60 _CRTIMP int *          __cdecl __p___argc(void);_CRTIMP char ***       __cdecl __p___argv(void);_CRTIMP wchar_t ***    __cdecl __p___wargv(void);_CRTIMP char ***       __cdecl __p__environ(void);_CRTIMP wchar_t ***    __cdecl __p__wenviron(void);_CRTIMP char **        __cdecl __p__pgmptr(void);_CRTIMP wchar_t **     __cdecl __p__wpgmptr(void);
     61 #endif  /** _M_IX86 && _DLL */
     62 #if !defined(_M_CEE_PURE)_CRTIMP extern int __argc;          /** count of cmd line args */_CRTIMP extern char ** __argv;      /** pointer to table of cmd line args */_CRTIMP extern wchar_t ** __wargv;  /** pointer to table of wide cmd line args */#else_CRTIMP int* __cdecl __p___argc();_CRTIMP char*** __cdecl __p___argv();_CRTIMP wchar_t*** __cdecl __p___wargv();#define __argv (*__p___argv())#define __argc (*__p___argc())#define __wargv (*__p___wargv())#endif
     63 _CRTIMPerrno_t__cdecl_get_environ(    __out char*** Value    );
     64 _CRTIMPerrno_t__cdecl_get_wenviron(    __out wchar_t*** Value    );
     65 #if !defined(_M_CEE_PURE)_CRTIMP extern char ** _environ;    /** pointer to environment table */_CRTIMP extern wchar_t ** _wenviron;    /** pointer to wide environment table */
     66 _CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr) _CRTIMP extern char * _pgmptr;      /** points to the module (EXE) name */_CRT_INSECURE_DEPRECATE_GLOBALS(_get_wpgmptr) _CRTIMP extern wchar_t * _wpgmptr;  /** points to the module (EXE) wide name */
     67 #else
     68 _CRTIMP char*** __cdecl __p__environ();_CRTIMP wchar_t*** __cdecl __p__wenviron();_CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr) _CRTIMP char** __cdecl __p__pgmptr();_CRT_INSECURE_DEPRECATE_GLOBALS(_get_wpgmptr) _CRTIMP wchar_t** __cdecl __p__wpgmptr();
     69 #define _environ   (*__p__environ())#define _wenviron  (*__p__wenviron())#define _pgmptr    (*__p__pgmptr())#define _wpgmptr   (*__p__wpgmptr())
     70 #endif /** !defined(_M_CEE_PURE) */
     71 errno_t __cdecl _get_pgmptr(__deref_out_z char ** _Value);errno_t __cdecl _get_wpgmptr(__deref_out_z wchar_t ** _Value);
     72 #if !defined(_M_CEE_PURE)_CRT_INSECURE_DEPRECATE_GLOBALS(_get_fmode) _CRTIMP extern int _fmode;          /** default file translation mode */#else_CRTIMP int* __cdecl __p__fmode();#define _fmode (*__p__fmode())#endif /** !defined(_M_CEE_PURE) */
     73 _CRTIMP errno_t __cdecl _set_fmode(__in int _Mode);_CRTIMP errno_t __cdecl _get_fmode(__out int * _PMode);
     74 #if !defined(_M_CEE_PURE) __declspec(deprecated) _CRTIMP extern int _fileinfo;       /** open file info mode (for spawn) */#endif /** !defined(_M_CEE_PURE) */__declspec(deprecated) errno_t __cdecl _set_fileinfo(int);__declspec(deprecated) errno_t __cdecl _get_fileinfo(int *);
     75 /** Windows major/minor and O.S. version numbers */
     76 #pragma warning(push)#pragma warning(disable:4141)
     77 #if !defined(_M_CEE_PURE)_CRT_INSECURE_DEPRECATE(_get_osplatform) _CRT_OBSOLETE(GetVersionEx) _CRTIMP extern unsigned int _osplatform;_CRT_INSECURE_DEPRECATE(_get_osver) _CRT_OBSOLETE(GetVersionEx)   _CRTIMP extern unsigned int _osver;_CRT_INSECURE_DEPRECATE(_get_winver) _CRT_OBSOLETE(GetVersionEx)  _CRTIMP extern unsigned int _winver;_CRT_INSECURE_DEPRECATE(_get_winmajor) _CRT_OBSOLETE(GetVersionEx)  _CRTIMP extern unsigned int _winmajor;_CRT_INSECURE_DEPRECATE(_get_winminor) _CRT_OBSOLETE(GetVersionEx)  _CRTIMP extern unsigned int _winminor;
     78 #else_CRT_INSECURE_DEPRECATE(_get_osplatform) _CRT_OBSOLETE(GetVersionEx) _CRTIMP unsigned int* __cdecl __p__osplatform();_CRT_INSECURE_DEPRECATE(_get_osver) _CRT_OBSOLETE(GetVersionEx)   _CRTIMP unsigned int* __cdecl __p__osver();_CRT_INSECURE_DEPRECATE(_get_winver) _CRT_OBSOLETE(GetVersionEx)  _CRTIMP unsigned int* __cdecl __p__winver();_CRT_INSECURE_DEPRECATE(_get_winmajor) _CRT_OBSOLETE(GetVersionEx)  _CRTIMP unsigned int* __cdecl __p__winmajor();_CRT_INSECURE_DEPRECATE(_get_winminor) _CRT_OBSOLETE(GetVersionEx)  _CRTIMP unsigned int* __cdecl __p__winminor();
     79 #define _osplatform  (*__p__osplatform())#define _osver       (*__p__osver())#define _winver      (*__p__winver())#define _winmajor    (*__p__winmajor())#define _winminor    (*__p__winminor())#endif /** !defined(_M_CEE_PURE) */
     80 #pragma warning(pop)
     81 _CRT_OBSOLETE(GetVersionEx) errno_t __cdecl _get_osplatform(__out unsigned int * _Value);_CRT_OBSOLETE(GetVersionEx) errno_t __cdecl _get_osver(__out unsigned int * _Value);_CRT_OBSOLETE(GetVersionEx) errno_t __cdecl _get_winver(__out unsigned int * _Value);_CRT_OBSOLETE(GetVersionEx) errno_t __cdecl _get_winmajor(__out unsigned int * _Value);_CRT_OBSOLETE(GetVersionEx) errno_t __cdecl _get_winminor(__out unsigned int * _Value);
     82 /** _countof helper */#if !defined(_countof)#if !defined(__cplusplus)#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0]))#elseextern "C++"{template <typename _CountofType, size_t _SizeOfArray>char (*__countof_helper(UNALIGNED _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];#define _countof(_Array) sizeof(*__countof_helper(_Array))}#endif#endif
     83 /** function prototypes */
     84 #ifndef _CRT_TERMINATE_DEFINED#define _CRT_TERMINATE_DEFINED_CRTIMP __declspec(noreturn) void __cdecl exit(__in int _Code);_CRTIMP __declspec(noreturn) void __cdecl _exit(__in int _Code);_CRTIMP void __cdecl abort(void);#endif
     85 _CRTIMP unsigned int __cdecl _set_abort_behavior(__in unsigned int _Flags, __in unsigned int _Mask);
     86 #ifndef _CRT_ABS_DEFINED#define _CRT_ABS_DEFINED        int     __cdecl abs(__in int _X);        long    __cdecl labs(__in long _X);#endif
     87 #if     _INTEGRAL_MAX_BITS >= 64        __int64    __cdecl _abs64(__int64);#endif#if _MSC_VER >= 1400 && defined(_M_CEE)        __checkReturn int    __clrcall _atexit_m_appdomain(__in_opt void (__clrcall * _Func)(void));#if defined(_M_CEE_MIXED)        __checkReturn int    __clrcall _atexit_m(__in_opt void (__clrcall * _Func)(void));#else        __checkReturn inline int __clrcall _atexit_m(__in_opt void (__clrcall *_Function)(void))        {            return _atexit_m_appdomain(_Function);        }#endif#endif#if defined(_M_CEE_PURE)        /** In pure mode, atexit is the same as atexit_m */extern "C++"{inline  int    __clrcall atexit(    void (__clrcall *_Function)(void)){    return _atexit_m_appdomain(_Function);}}#else        int    __cdecl atexit(void (__cdecl *)(void));#endif#ifndef _CRT_ATOF_DEFINED#define _CRT_ATOF_DEFINED_CRTIMP double  __cdecl atof(__in_z const char *_String);_CRTIMP double  __cdecl _atof_l(__in_z const char *_String, __in_opt _locale_t _Locale);#endif_CRTIMP _CRT_JIT_INTRINSIC __checkReturn int    __cdecl atoi(__in_z const char *_Str);_CRTIMP __checkReturn int    __cdecl _atoi_l(__in_z const char *_Str, __in_opt _locale_t _Locale);_CRTIMP __checkReturn long   __cdecl atol(__in_z const char *_Str);_CRTIMP __checkReturn long   __cdecl _atol_l(__in_z const char *_Str, __in_opt _locale_t _Locale);#ifndef _CRT_ALGO_DEFINED#define _CRT_ALGO_DEFINED#if __STDC_WANT_SECURE_LIB___CRTIMP __checkReturn void * __cdecl bsearch_s(__in const void * _Key, __in_bcount(_NumOfElements * _SizeOfElements) const void * _Base,         __in rsize_t _NumOfElements, __in rsize_t _SizeOfElements,        __in int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void * _Context);#endif_CRTIMP __checkReturn void * __cdecl bsearch(__in const void * _Key, __in_bcount(_NumOfElements * _SizeOfElements) const void * _Base,         __in size_t _NumOfElements, __in size_t _SizeOfElements,        __in int (__cdecl * _PtFuncCompare)(const void *, const void *));
     88 #if __STDC_WANT_SECURE_LIB___CRTIMP_ALT void __cdecl qsort_s(__inout_bcount(_NumOfElements* _SizeOfElements) void * _Base,         __in rsize_t _NumOfElements, __in rsize_t _SizeOfElements,        __in int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void *_Context);#endif_CRTIMP void __cdecl qsort(__inout_bcount(_NumOfElements * _SizeOfElements) void * _Base,  __in size_t _NumOfElements, __in size_t _SizeOfElements,         __in int (__cdecl * _PtFuncCompare)(const void *, const void *));#endif        __checkReturn unsigned short __cdecl _byteswap_ushort(__in unsigned short _Short);        __checkReturn unsigned long  __cdecl _byteswap_ulong (__in unsigned long _Long);#if     _INTEGRAL_MAX_BITS >= 64        __checkReturn unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 _Int64);#endif_CRTIMP __checkReturn div_t  __cdecl div(__in int _Numerator, __in int _Denominator);_CRTIMP _CRT_INSECURE_DEPRECATE(_dupenv_s) __checkReturn char * __cdecl getenv(__in_z const char * _VarName);#if __STDC_WANT_SECURE_LIB___CRTIMP __checkReturn_opt errno_t __cdecl getenv_s(__out size_t * _ReturnSize, __out_ecount_z(_DstSize) char * _DstBuf, __in rsize_t _DstSize, __in_z const char * _VarName);#endif__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, getenv_s, __out size_t *, _ReturnSize, __out_ecount(_Size) char, _Dest, __in_z const char *, _VarName)_CRTIMP __checkReturn_opt errno_t __cdecl _dupenv_s(__deref_out_ecount_z_opt(*_PBufferSizeInBytes) char **_PBuffer, __out_opt size_t * _PBufferSizeInBytes, __in_z const char * _VarName);_CRTIMP_ALT __checkReturn_opt errno_t __ALTDECL _itoa_s(__in int _Value, __out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in int _Radix);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _itoa_s, __in int, _Value, __out_ecount(_Size) char, _Dest, __in int, _Radix)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(char *, __RETURN_POLICY_DST, _CRTIMP, _itoa, __in int, _Value, __out_z char, _Dest, __in int, _Radix)#if     _INTEGRAL_MAX_BITS >= 64_CRTIMP_ALT __checkReturn_opt errno_t __ALTDECL _i64toa_s(__in __int64 _Val, __out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in int _Radix);_CRTIMP _CRT_INSECURE_DEPRECATE(_i64toa_s) char * __cdecl _i64toa(__in __int64 _Val, __out_z char * _DstBuf, __in int _Radix);_CRTIMP_ALT __checkReturn_opt errno_t __ALTDECL _ui64toa_s(__in unsigned __int64 _Val, __out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in int _Radix);_CRTIMP _CRT_INSECURE_DEPRECATE(_ui64toa_s) char * __cdecl _ui64toa(__in unsigned __int64 _Val, __out_z char * _DstBuf, __in int _Radix);_CRTIMP __checkReturn __int64 __cdecl _atoi64(__in_z const char * _String);_CRTIMP __checkReturn __int64 __cdecl _atoi64_l(__in_z const char * _String, __in_opt _locale_t _Locale);_CRTIMP __checkReturn __int64 __cdecl _strtoi64(__in_z const char * _String, __deref_opt_out_z char ** _EndPtr, __in int _Radix);_CRTIMP __checkReturn __int64 __cdecl _strtoi64_l(__in_z const char * _String, __deref_opt_out_z char ** _EndPtr, __in int _Radix, __in_opt _locale_t _Locale);_CRTIMP __checkReturn unsigned __int64 __cdecl _strtoui64(__in_z const char * _String, __deref_opt_out_z char ** _EndPtr, __in int _Radix);_CRTIMP __checkReturn unsigned __int64 __cdecl _strtoui64_l(__in_z const char * _String, __deref_opt_out_z char ** _EndPtr, __in int  _Radix, __in_opt _locale_t _Locale);#endif_CRTIMP __checkReturn ldiv_t __cdecl ldiv(__in long _Numerator, __in long _Denominator);#ifdef __cplusplusextern "C++"{    inline ldiv_t  div(__in long _A1, __in long _A2)    {        return ldiv(_A1, _A2);    }}#endif_CRTIMP_ALT __checkReturn_opt errno_t __ALTDECL _ltoa_s(__in long _Val, __out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in int _Radix);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ltoa_s, __in long, _Value, __out_ecount(_Size) char, _Dest, __in int, _Radix)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(char *, __RETURN_POLICY_DST, _CRTIMP, _ltoa, __in long, _Value, __out_z char, _Dest, __in int, _Radix)_CRTIMP __checkReturn int    __cdecl mblen(__in_bcount_z_opt(_MaxCount) const char * _Ch, __in size_t _MaxCount);_CRTIMP __checkReturn int    __cdecl _mblen_l(__in_bcount_z_opt(_MaxCount) const char * _Ch, __in size_t _MaxCount, __in_opt _locale_t _Locale);_CRTIMP __checkReturn size_t __cdecl _mbstrlen(__in_z const char * _Str);_CRTIMP __checkReturn size_t __cdecl _mbstrlen_l(__in_z const char *_Str, __in_opt _locale_t _Locale);_CRTIMP __checkReturn size_t __cdecl _mbstrnlen(__in_bcount_z(_MaxCount) const char *_Str, __in size_t _MaxCount);_CRTIMP __checkReturn size_t __cdecl _mbstrnlen_l(__in_bcount_z(_MaxCount) const char *_Str, __in size_t _MaxCount, __in_opt _locale_t _Locale);_CRTIMP int    __cdecl mbtowc(__out_z wchar_t * _DstCh, __in_bcount_z_opt(_SrcSizeInBytes) const char * _SrcCh, __in size_t _SrcSizeInBytes);_CRTIMP int    __cdecl _mbtowc_l(__out_z wchar_t * _DstCh, __in_bcount_z_opt(_SrcSizeInBytes) const char * _SrcCh, __in size_t _SrcSizeInBytes, __in_opt _locale_t _Locale);_CRTIMP __checkReturn_opt errno_t __cdecl mbstowcs_s(__out_opt size_t * _PtNumOfCharConverted, __out_ecount_part_opt(_SizeInWords, *_PtNumOfCharConverted) wchar_t * _DstBuf, __in size_t _SizeInWords, __in_ecount_z(_MaxCount) const char * _SrcBuf, __in size_t _MaxCount );__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(errno_t, mbstowcs_s, __out_opt size_t *, _PtNumOfCharConverted, __out_ecount_z(_Size) wchar_t, _Dest, __in_z const char *, _Source, __in size_t, _MaxCount)__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE(_CRTIMP, mbstowcs, __out_z_opt wchar_t, _Dest, __in_z const char *, _Source, __in size_t, _MaxCount)
     89 _CRTIMP __checkReturn_opt errno_t __cdecl _mbstowcs_s_l(__out_opt size_t * _PtNumOfCharConverted, __out_ecount_part_opt(_SizeInWords, *_PtNumOfCharConverted) wchar_t * _DstBuf, __in size_t _SizeInWords, __in_ecount_z(_MaxCount) const char * _SrcBuf, __in size_t _MaxCount, __in_opt _locale_t _Locale);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t, _mbstowcs_s_l, __out_opt size_t *, _PtNumOfCharConverted, __out_ecount(_Size) wchar_t, _Dest, __in_z const char *, _Source, __in size_t, _MaxCount, __in_opt _locale_t, _Locale)__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_CRTIMP, _mbstowcs_l, _mbstowcs_s_l, __out_ecount_z_opt(_Size) wchar_t, __out_z_opt wchar_t, _Dest, __in_z const char *, _Source, __in size_t, _MaxCount, __in_opt _locale_t, _Locale)
     90 _CRTIMP __checkReturn int    __cdecl rand(void);#if defined(_CRT_RAND_S)_CRTIMP errno_t __cdecl rand_s ( __out unsigned int *_RandomValue);#endif
     91 _CRTIMP __checkReturn_opt int    __cdecl _set_error_mode(__in int _Mode);
     92 _CRTIMP void   __cdecl srand(__in unsigned int _Seed);_CRTIMP __checkReturn double __cdecl strtod(__in_z const char * _Str, __deref_opt_out_z char ** _EndPtr);_CRTIMP __checkReturn double __cdecl _strtod_l(__in_z const char * _Str, __deref_opt_out_z char ** _EndPtr, __in_opt _locale_t _Locale);_CRTIMP __checkReturn long   __cdecl strtol(__in_z const char * _Str, __deref_opt_out_z char ** _EndPtr, __in int _Radix );_CRTIMP __checkReturn long   __cdecl _strtol_l(__in_z const char *_Str, __deref_opt_out_z char **_EndPtr, __in int _Radix, __in_opt _locale_t _Locale);_CRTIMP __checkReturn unsigned long __cdecl strtoul(__in_z const char * _Str, __deref_opt_out_z char ** _EndPtr, __in int _Radix);_CRTIMP __checkReturn unsigned long __cdecl _strtoul_l(const char * _Str, __deref_opt_out_z char **_EndPtr, __in int _Radix, __in_opt _locale_t _Locale);#ifndef _CRT_SYSTEM_DEFINED#define _CRT_SYSTEM_DEFINED_CRTIMP int __cdecl system(__in_z_opt const char * _Command);#endif_CRTIMP_ALT __checkReturn_opt errno_t __ALTDECL _ultoa_s(__in unsigned long _Val, __out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in int _Radix);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ultoa_s, __in unsigned long, _Value, __out_ecount(_Size) char, _Dest, __in int, _Radix)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(char *, __RETURN_POLICY_DST, _CRTIMP, _ultoa, __in unsigned long, _Value, __out_z char, _Dest, __in int, _Radix)_CRTIMP _CRT_INSECURE_DEPRECATE(wctomb_s) int    __cdecl wctomb(__out_bcount_z_opt(MB_LEN_MAX) char * _MbCh, __in_z wchar_t _WCh);_CRTIMP _CRT_INSECURE_DEPRECATE(_wctomb_s_l) int    __cdecl _wctomb_l(__out_z_opt char * _MbCh, __in_z wchar_t _WCh, __in_opt _locale_t _Locale);#if __STDC_WANT_SECURE_LIB___CRTIMP __checkReturn_wat errno_t __cdecl wctomb_s(__out_opt int * _SizeConverted, __out_bcount_part_opt(_SizeInBytes, *_SizeConverted) char * _MbCh, __in rsize_t _SizeInBytes, __in_z wchar_t _WCh);#endif_CRTIMP __checkReturn_wat errno_t __cdecl _wctomb_s_l(__out_opt int * _SizeConverted, __out_bcount_z_opt(_SizeInBytes) char * _MbCh, __in size_t _SizeInBytes, __in_z wchar_t _WCh, __in_opt _locale_t _Locale);_CRTIMP __checkReturn_wat errno_t __cdecl wcstombs_s(__out_opt size_t * _PtNumOfCharConverted, __out_bcount_part_opt(_DstSizeInBytes, *_PtNumOfCharConverted) char * _Dst, __in size_t _DstSizeInBytes, __in_z const wchar_t * _Src, __in size_t _MaxCountInBytes);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(errno_t, wcstombs_s, __out_opt size_t *, _PtNumOfCharConverted, __out_bcount_opt(_Size) char, _Dest, __in_z const wchar_t *, _Source, __in size_t, _MaxCount)__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE(_CRTIMP, wcstombs, __out_z_opt char, _Dest, __in_z const wchar_t *, _Source, __in size_t, _MaxCount)_CRTIMP __checkReturn_wat errno_t __cdecl _wcstombs_s_l(__out_opt size_t * _PtNumOfCharConverted, __out_bcount_part_opt(_DstSizeInBytes, *_PtNumOfCharConverted) char * _Dst, __in size_t _DstSizeInBytes, __in_z const wchar_t * _Src, __in size_t _MaxCountInBytes, __in_opt _locale_t _Locale);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t, _wcstombs_s_l, __out_opt size_t *,_PtNumOfCharConverted, __out_ecount_opt(_Size) char, _Dest, __in_z const wchar_t *, _Source, __in size_t, _MaxCount, __in_opt _locale_t, _Locale)__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_CRTIMP, _wcstombs_l, _wcstombs_s_l, __out_ecount_z_opt(_Size) char, __out_z_opt char, _Dest, __in_z const wchar_t *, _Source, __in size_t, _MaxCount, __in_opt _locale_t, _Locale)
     93 #if _MSC_VER >= 1400 && defined(__cplusplus) && defined(_M_CEE)/** * Managed search routines. Note __cplusplus, this is because we only support * managed C++. */extern "C++"{#if __STDC_WANT_SECURE_LIB____checkReturn void * __clrcall bsearch_s(__in const void * _Key, __in_bcount(_NumOfElements*_SizeOfElements) const void * _Base, __in rsize_t _NumOfElements, __in rsize_t _SizeOfElements,         __in int (__clrcall * _PtFuncCompare)(void *, const void *, const void *), void * _Context);#endif__checkReturn void * __clrcall bsearch  (__in const void * _Key, __in_bcount(_NumOfElements*_SizeOfElements) const void * _Base, __in size_t _NumOfElements, __in size_t _SizeOfElements,        __in int (__clrcall * _PtFuncCompare)(const void *, const void *));
     94 #if __STDC_WANT_SECURE_LIB__void __clrcall qsort_s(__inout_bcount(_NumOfElements*_SizeOfElements) void * _Base, __in rsize_t _NumOfElements, __in rsize_t _SizeOfElements,         __in int (__clrcall * _PtFuncCompare)(void *, const void *, const void *), void * _Context);#endifvoid __clrcall qsort  (__inout_bcount(_NumOfElements*_SizeOfElements) void * _Base, __in size_t _NumOfElements, __in size_t _SizeOfElements,         __in int (__clrcall * _PtFuncCompare)(const void *, const void *));}#endif
     95 #ifndef _CRT_ALLOCATION_DEFINED#define _CRT_ALLOCATION_DEFINED_CRTIMP _CRT_JIT_INTRINSIC  _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_NumOfElements* _SizeOfElements)    void * __cdecl calloc(__in size_t _NumOfElements, __in size_t _SizeOfElements);_CRTIMP                     _CRTNOALIAS void   __cdecl free(__inout_opt void * _Memory);_CRTIMP _CRT_JIT_INTRINSIC  _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size)                              void * __cdecl malloc(__in size_t _Size);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_NewSize)                           void * __cdecl realloc(__in_opt void * _Memory, __in size_t _NewSize);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size*_Count)                       void * __cdecl _recalloc(__in_opt void * _Memory, __in size_t _Count, __in size_t _Size);_CRTIMP                     _CRTNOALIAS void   __cdecl _aligned_free(__inout_opt void * _Memory);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size)                              void * __cdecl _aligned_malloc(__in size_t _Size, __in size_t _Alignment);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size)                              void * __cdecl _aligned_offset_malloc(__in size_t _Size, __in size_t _Alignment, __in size_t _Offset);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size)                              void * __cdecl _aligned_realloc(__in_opt void * _Memory, __in size_t _Size, __in size_t _Alignment);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size*_Count)                       void * __cdecl _aligned_recalloc(__in_opt void * _Memory, __in size_t _Count, __in size_t _Size, __in size_t _Alignment);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size)                              void * __cdecl _aligned_offset_realloc(__in_opt void * _Memory, __in size_t _Size, __in size_t _Alignment, __in size_t _Offset);_CRTIMP                     _CRTNOALIAS _CRTRESTRICT __checkReturn __bcount_opt(_Size*_Count)                       void * __cdecl _aligned_offset_recalloc(__in_opt void * _Memory, __in size_t _Count, __in size_t _Size, __in size_t _Alignment, __in size_t _Offset);#endif
     96 #ifndef _WSTDLIB_DEFINED
     97 /** wide function prototypes, also declared in wchar.h  */
     98 _CRTIMP_ALT __checkReturn_wat errno_t __ALTDECL _itow_s (__in int _Val, __out_ecount_z(_SizeInWords) wchar_t * _DstBuf, __in size_t _SizeInWords, __in int _Radix);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _itow_s, __in int, _Value, __out_ecount(_Size) wchar_t, _Dest, __in int, _Radix)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _itow, __in int, _Value, __out_z wchar_t, _Dest, __in int, _Radix)_CRTIMP_ALT __checkReturn_wat errno_t __ALTDECL _ltow_s (__in long _Val, __out_ecount_z(_SizeInWords) wchar_t * _DstBuf, __in size_t _SizeInWords, __in int _Radix);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ltow_s, __in long, _Value, __out_ecount(_Size) wchar_t, _Dest, __in int, _Radix)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _ltow, __in long, _Value, __out_z wchar_t, _Dest, __in int, _Radix)_CRTIMP_ALT __checkReturn_wat errno_t __ALTDECL _ultow_s (__in unsigned long _Val, __out_ecount_z(_SizeInWords) wchar_t * _DstBuf, __in size_t _SizeInWords, __in int _Radix);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ultow_s, __in unsigned long, _Value, __out_ecount(_Size) wchar_t, _Dest, __in int, _Radix)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _ultow, __in unsigned long, _Value, __out_z wchar_t, _Dest, __in int, _Radix)_CRTIMP __checkReturn double __cdecl wcstod(__in_z const wchar_t * _Str, __deref_opt_out_z wchar_t ** _EndPtr);_CRTIMP __checkReturn double __cdecl _wcstod_l(__in_z const wchar_t *_Str, __deref_opt_out_z wchar_t ** _EndPtr, __in_opt _locale_t _Locale);_CRTIMP __checkReturn long   __cdecl wcstol(__in_z const wchar_t *_Str, __deref_opt_out_z wchar_t ** _EndPtr, int _Radix);_CRTIMP __checkReturn long   __cdecl _wcstol_l(__in_z const wchar_t *_Str, __deref_opt_out_z wchar_t **_EndPtr, int _Radix, __in_opt _locale_t _Locale);_CRTIMP __checkReturn unsigned long __cdecl wcstoul(__in_z const wchar_t *_Str, __deref_opt_out_z wchar_t ** _EndPtr, int _Radix);_CRTIMP __checkReturn unsigned long __cdecl _wcstoul_l(__in_z const wchar_t *_Str, __deref_opt_out_z wchar_t **_EndPtr, int _Radix, __in_opt _locale_t _Locale);_CRTIMP _CRT_INSECURE_DEPRECATE(_wdupenv_s) __checkReturn wchar_t * __cdecl _wgetenv(__in_z const wchar_t * _VarName);_CRTIMP __checkReturn_wat errno_t __cdecl _wgetenv_s(__out size_t * _ReturnSize, __out_ecount_z(_DstSizeInWords) wchar_t * _DstBuf, __in size_t _DstSizeInWords, __in_z const wchar_t * _VarName);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _wgetenv_s, __out size_t *, _ReturnSize, __out_ecount(_Size) wchar_t, _Dest, __in_z const wchar_t *, _VarName)_CRTIMP __checkReturn_wat errno_t __cdecl _wdupenv_s(__deref_out_ecount_z_opt(*_BufferSizeInWords) wchar_t **_Buffer, __out_opt size_t *_BufferSizeInWords, __in_z const wchar_t *_VarName);#ifndef _CRT_WSYSTEM_DEFINED#define _CRT_WSYSTEM_DEFINED_CRTIMP int __cdecl _wsystem(__in_z_opt const wchar_t * _Command);#endif_CRTIMP __checkReturn double __cdecl _wtof(__in_z const wchar_t *_Str);_CRTIMP __checkReturn double __cdecl _wtof_l(__in_z const wchar_t *_Str, __in_opt _locale_t _Locale);_CRTIMP __checkReturn int __cdecl _wtoi(__in_z const wchar_t *_Str);_CRTIMP __checkReturn int __cdecl _wtoi_l(__in_z const wchar_t *_Str, __in_opt _locale_t _Locale);_CRTIMP __checkReturn long __cdecl _wtol(__in_z const wchar_t *_Str);_CRTIMP __checkReturn long __cdecl _wtol_l(__in_z const wchar_t *_Str, __in_opt _locale_t _Locale);
     99 #if     _INTEGRAL_MAX_BITS >= 64_CRTIMP_ALT __checkReturn_wat errno_t __ALTDECL _i64tow_s(__in __int64 _Val, __out_ecount_z(_SizeInWords) wchar_t * _DstBuf, __in size_t _SizeInWords, __in int _Radix);_CRTIMP _CRT_INSECURE_DEPRECATE(_i65tow_s) wchar_t * __cdecl _i64tow(__in __int64 _Val, __out_z wchar_t * _DstBuf, __in int _Radix);_CRTIMP_ALT __checkReturn_wat errno_t __ALTDECL _ui64tow_s(__in unsigned __int64 _Val, __out_ecount_z(_SizeInWords) wchar_t * _DstBuf, __in size_t _SizeInWords, __in int _Radix);_CRTIMP _CRT_INSECURE_DEPRECATE(_ui64tow_s) wchar_t * __cdecl _ui64tow(__in unsigned __int64 _Val, __out_z wchar_t * _DstBuf, __in int _Radix);_CRTIMP __checkReturn __int64   __cdecl _wtoi64(__in_z const wchar_t *_Str);_CRTIMP __checkReturn __int64   __cdecl _wtoi64_l(__in_z const wchar_t *_Str, __in_opt _locale_t _Locale);_CRTIMP __checkReturn __int64   __cdecl _wcstoi64(__in_z const wchar_t * _Str, __deref_opt_out_z wchar_t ** _EndPtr, __in int _Radix);_CRTIMP __checkReturn __int64   __cdecl _wcstoi64_l(__in_z const wchar_t * _Str, __deref_opt_out_z wchar_t ** _EndPtr, __in int _Radix, __in_opt _locale_t _Locale);_CRTIMP __checkReturn unsigned __int64  __cdecl _wcstoui64(__in_z const wchar_t * _Str, __deref_opt_out_z wchar_t ** _EndPtr, __in int _Radix);_CRTIMP __checkReturn unsigned __int64  __cdecl _wcstoui64_l(__in_z const wchar_t *_Str , __deref_opt_out_z wchar_t ** _EndPtr, __in int _Radix, __in_opt _locale_t _Locale);#endif
    100 #define _WSTDLIB_DEFINED#endif
    101 /** Buffer size required to be passed to _gcvt, fcvt and other fp conversion routines*/#define _CVTBUFSIZE (309+40) /** # of digits in max. dp value + slop */
    102 #if (defined(_DEBUG) || defined(_SYSCRT_DEBUG)) && defined(_CRTDBG_MAP_ALLOC)#pragma push_macro("_fullpath")#undef _fullpath#endif
    103 _CRTIMP __checkReturn char * __cdecl _fullpath(__out_ecount_z_opt(_SizeInBytes) char * _FullPath, __in_z const char * _Path, __in size_t _SizeInBytes);
    104 #if (defined(_DEBUG) || defined(_SYSCRT_DEBUG)) && defined(_CRTDBG_MAP_ALLOC)#pragma pop_macro("_fullpath")#endif
    105 _CRTIMP_ALT __checkReturn_wat errno_t __cdecl _ecvt_s(__out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in double _Val, __in int _NumOfDights, __out int * _PtDec, __out int * _PtSign);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(errno_t, _ecvt_s, __out_ecount(_Size) char, _Dest, __in double, _Value, __in int, _NumOfDigits, __out int *, _PtDec, __out int *, _PtSign)_CRTIMP _CRT_INSECURE_DEPRECATE(_ecvt_s) __checkReturn char * __cdecl _ecvt(__in double _Val, __in int _NumOfDigits, __out int * _PtDec, __out int * _PtSign);_CRTIMP __checkReturn_wat errno_t __cdecl _fcvt_s(__out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in double _Val, __in int _NumOfDec, __out int * _PtDec, __out int * _PtSign);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(errno_t, _fcvt_s, __out_ecount(_Size) char, _Dest, __in double, _Value, __in int, _NumOfDigits, __out int *, _PtDec, __out int *, _PtSign)_CRTIMP _CRT_INSECURE_DEPRECATE(_fcvt_s) __checkReturn char * __cdecl _fcvt(__in double _Val, __in int _NumOfDec, __out int * _PtDec, __out int * _PtSign);_CRTIMP_ALT errno_t __ALTDECL _gcvt_s(__out_ecount_z(_Size) char * _DstBuf, __in size_t _Size, __in double _Val, __in int _NumOfDigits);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _gcvt_s, __out_ecount(_Size) char, _Dest, __in double, _Value, __in int, _NumOfDigits)_CRTIMP _CRT_INSECURE_DEPRECATE(_gcvt_s) char * __cdecl _gcvt(__in double _Val, __in int _NumOfDigits, __out_z char * _DstBuf);
    106 _CRTIMP __checkReturn int __cdecl _atodbl(__out _CRT_DOUBLE * _Result, __in_z char * _Str);_CRTIMP __checkReturn int __cdecl _atoldbl(__out _LDOUBLE * _Result, __in_z char * _Str);_CRTIMP __checkReturn int __cdecl _atoflt(__out _CRT_FLOAT * _Result, __in_z char * _Str);_CRTIMP __checkReturn int __cdecl _atodbl_l(__out _CRT_DOUBLE * _Result, __in_z char * _Str, __in_opt _locale_t _Locale);_CRTIMP __checkReturn int __cdecl _atoldbl_l(__out _LDOUBLE * _Result, __in_z char * _Str, __in_opt _locale_t _Locale);_CRTIMP __checkReturn int __cdecl _atoflt_l(__out _CRT_FLOAT * _Result, __in_z char * _Str, __in_opt _locale_t _Locale);        __checkReturn unsigned long __cdecl _lrotl(__in unsigned long _Val, __in int _Shift);        __checkReturn unsigned long __cdecl _lrotr(__in unsigned long _Val, __in int _Shift);_CRTIMP_ALT __checkReturn_wat errno_t   __ALTDECL _makepath_s(__out_ecount_z(_Size) char * _PathResult, __in_opt size_t _Size, __in_z_opt const char * _Drive, __in_z_opt const char * _Dir, __in_z_opt const char * _Filename,        __in_z_opt const char * _Ext);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(errno_t, _makepath_s, __out_ecount(_Size) char, _Path, __in_z_opt const char *, _Drive, __in_z_opt const char *, _Dir, __in_z_opt const char *, _Filename, __in_z_opt const char *, _Ext)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4(void, __RETURN_POLICY_VOID, _CRTIMP, _makepath, __out_z char, _Path, __in_z_opt const char *, _Drive, __in_z_opt const char *, _Dir, __in_z_opt const char *, _Filename, __in_z_opt const char *, _Ext)
    107 #if _MSC_VER >= 1400 && defined(_M_CEE)  _onexit_m_t    __clrcall _onexit_m_appdomain(_onexit_m_t _Function); #if defined(_M_CEE_MIXED)  _onexit_m_t    __clrcall _onexit_m(_onexit_m_t _Function); #else  inline _onexit_m_t    __clrcall _onexit_m(_onexit_t _Function)  {   return _onexit_m_appdomain(_Function);  } #endif        #endif#if defined(_M_CEE_PURE)        /** In pure mode, _onexit is the same as _onexit_m_appdomain */extern "C++"{inline  _onexit_t    __clrcall _onexit(    _onexit_t _Function){    return _onexit_m_appdomain(_Function);}}#else        _onexit_t __cdecl _onexit(__in_opt _onexit_t _Func);#endif        #ifndef _CRT_PERROR_DEFINED#define _CRT_PERROR_DEFINED_CRTIMP void __cdecl perror(__in_z_opt const char * _ErrMsg);#endif_CRTIMP __checkReturn int    __cdecl _putenv(__in_z const char * _EnvString);_CRTIMP __checkReturn_wat errno_t __cdecl _putenv_s(__in_z const char * _Name, __in_z const char * _Value);        __checkReturn unsigned int __cdecl _rotl(__in unsigned int _Val, __in int _Shift);#if     _INTEGRAL_MAX_BITS >= 64        __checkReturn unsigned __int64 __cdecl _rotl64(__in unsigned __int64 _Val, __in int _Shift);#endif        __checkReturn unsigned int __cdecl _rotr(__in unsigned int _Val, __in int _Shift);#if     _INTEGRAL_MAX_BITS >= 64        __checkReturn unsigned __int64 __cdecl _rotr64(__in unsigned __int64 _Val, __in int _Shift);#endif_CRTIMP errno_t __cdecl _searchenv_s(__in_z const char * _Filename, __in_z const char * _EnvVar, __out_ecount_z(_SizeInBytes) char * _ResultPath, __in size_t _SizeInBytes);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(errno_t, _searchenv_s, __in_z const char *, _Filename, __in_z const char *, _EnvVar, __out_ecount(_Size) char, _ResultPath)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0(void, __RETURN_POLICY_VOID, _CRTIMP, _searchenv, __in_z const char *, _Filename, __in_z const char *, _EnvVar, __out_z char, _ResultPath)
    108 _CRT_INSECURE_DEPRECATE(_splitpath_s) _CRTIMP void   __cdecl _splitpath(__in_z const char * _FullPath, __out_z_opt char * _Drive, __out_z_opt char * _Dir, __out_z_opt char * _Filename, __out_z_opt char * _Ext);_CRTIMP_ALT __checkReturn_wat errno_t  __ALTDECL _splitpath_s(__in_z const char * _FullPath,   __out_ecount_z_opt(_DriveSize) char * _Drive, __in size_t _DriveSize,   __out_ecount_z_opt(_DirSize) char * _Dir, __in size_t _DirSize,   __out_ecount_z_opt(_FilenameSize) char * _Filename, __in size_t _FilenameSize,   __out_ecount_z_opt(_ExtSize) char * _Ext, __in size_t _ExtSize);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(errno_t, _splitpath_s,  char, _Dest)
    109 _CRTIMP void   __cdecl _swab(__inout_ecount_full(_SizeInBytes) char * _Buf1, __inout_ecount_full(_SizeInBytes) char * _Buf2, int _SizeInBytes);
    110 #ifndef _WSTDLIBP_DEFINED
    111 /** wide function prototypes, also declared in wchar.h  */
    112 #if (defined(_DEBUG) || defined(_SYSCRT_DEBUG)) && defined(_CRTDBG_MAP_ALLOC)#pragma push_macro("_wfullpath")#undef _wfullpath#endif
    113 _CRTIMP __checkReturn wchar_t * __cdecl _wfullpath(__out_ecount_z_opt(_SizeInWords) wchar_t * _FullPath, __in_z const wchar_t * _Path, __in size_t _SizeInWords);
    114 #if (defined(_DEBUG) || defined(_SYSCRT_DEBUG)) && defined(_CRTDBG_MAP_ALLOC)#pragma pop_macro("_wfullpath")#endif
    115 _CRTIMP_ALT __checkReturn_wat errno_t __ALTDECL _wmakepath_s(__out_ecount_z(_SizeInWords) wchar_t * _PathResult, __in_opt size_t _SizeInWords, __in_z_opt const wchar_t * _Drive, __in_z_opt const wchar_t * _Dir, __in_z_opt const wchar_t * _Filename,        __in_z_opt const wchar_t * _Ext);        __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(errno_t, _wmakepath_s, __out_ecount(_Size) wchar_t, _ResultPath, __in_z_opt const wchar_t *, _Drive, __in_z_opt const wchar_t *, _Dir, __in_z_opt const wchar_t *, _Filename, __in_z_opt const wchar_t *, _Ext)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4(void, __RETURN_POLICY_VOID, _CRTIMP, _wmakepath, __out_z wchar_t, _ResultPath, __in_z_opt const wchar_t *, _Drive, __in_z_opt const wchar_t *, _Dir, __in_z_opt const wchar_t *, _Filename, __in_z_opt const wchar_t *, _Ext)#ifndef _CRT_WPERROR_DEFINED#define _CRT_WPERROR_DEFINED_CRTIMP void __cdecl _wperror(__in_z_opt const wchar_t * _ErrMsg);#endif _CRTIMP __checkReturn int    __cdecl _wputenv(__in_z const wchar_t * _EnvString);_CRTIMP __checkReturn_wat errno_t __cdecl _wputenv_s(__in_z const wchar_t * _Name, __in_z const wchar_t * _Value);_CRTIMP errno_t __cdecl _wsearchenv_s(__in_z const wchar_t * _Filename, __in_z const wchar_t * _EnvVar, __out_ecount_z(_SizeInWords) wchar_t * _ResultPath, __in size_t _SizeInWords);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(errno_t, _wsearchenv_s, __in_z const wchar_t *, _Filename, __in_z const wchar_t *, _EnvVar, __out_ecount(_Size) wchar_t, _ResultPath)__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0(void, __RETURN_POLICY_VOID, _CRTIMP, _wsearchenv, __in_z const wchar_t *, _Filename, __in_z const wchar_t *, _EnvVar, __out_z wchar_t, _ResultPath)_CRT_INSECURE_DEPRECATE(_wsplitpath_s) _CRTIMP void   __cdecl _wsplitpath(__in_z const wchar_t * _FullPath, __out_z_opt wchar_t * _Drive, __out_z_opt wchar_t * _Dir, __out_z_opt wchar_t * _Filename, __out_z_opt wchar_t * _Ext);_CRTIMP_ALT errno_t __ALTDECL _wsplitpath_s(__in_z const wchar_t * _FullPath,   __out_ecount_z_opt(_DriveSizeInWords) wchar_t * _Drive, __in size_t _DriveSizeInWords,   __out_ecount_z_opt(_DirSizeInWords) wchar_t * _Dir, __in size_t _DirSizeInWords,   __out_ecount_z_opt(_FilenameSizeInWords) wchar_t * _Filename, __in size_t _FilenameSizeInWords,   __out_ecount_z_opt(_ExtSizeInWords) wchar_t * _Ext, __in size_t _ExtSizeInWords);__DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(errno_t, _wsplitpath_s, wchar_t, _Path)
    116 #define _WSTDLIBP_DEFINED#endif
    117 /** The Win32 API SetErrorMode, Beep and Sleep should be used instead. */_CRT_OBSOLETE(SetErrorMode) _CRTIMP void __cdecl _seterrormode(__in int _Mode);_CRT_OBSOLETE(Beep) _CRTIMP void __cdecl _beep(__in unsigned _Frequency, __in unsigned _Duration);_CRT_OBSOLETE(Sleep) _CRTIMP void __cdecl _sleep(__in unsigned long _Duration);
    118 #if     !__STDC__
    119 /** Non-ANSI names for compatibility */
    120 #ifndef __cplusplus#define max(a,b)    (((a) > (b)) ? (a) : (b))#define min(a,b)    (((a) < (b)) ? (a) : (b))#endif
    121 #define sys_errlist _sys_errlist#define sys_nerr    _sys_nerr#define environ     _environ
    122 #pragma warning(push)#pragma warning(disable: 4141) /** Using deprecated twice */ _CRT_NONSTDC_DEPRECATE(_ecvt) _CRT_INSECURE_DEPRECATE(_ecvt_s)  _CRTIMP __checkReturn char * __cdecl ecvt(__in double _Val, __in int _NumOfDigits, __out int * _PtDec, __out int * _PtSign);_CRT_NONSTDC_DEPRECATE(_fcvt) _CRT_INSECURE_DEPRECATE(_fcvt_s)  _CRTIMP __checkReturn char * __cdecl fcvt(__in double _Val, __in int _NumOfDec, __out int * _PtDec, __out int * _PtSign);_CRT_NONSTDC_DEPRECATE(_gcvt) _CRT_INSECURE_DEPRECATE(_fcvt_s)  _CRTIMP char * __cdecl gcvt(__in double _Val, __in int _NumOfDigits, __out_z char * _DstBuf);_CRT_NONSTDC_DEPRECATE(_itoa) _CRT_INSECURE_DEPRECATE(_itoa_s)  _CRTIMP char * __cdecl itoa(__in int _Val, __out_z char * _DstBuf, __in int _Radix);_CRT_NONSTDC_DEPRECATE(_ltoa) _CRT_INSECURE_DEPRECATE(_ltoa_s)  _CRTIMP char * __cdecl ltoa(__in long _Val, __out_z char * _DstBuf, __in int _Radix);_CRT_NONSTDC_DEPRECATE(_putenv)          _CRTIMP __checkReturn int    __cdecl putenv(__in_z const char * _EnvString);_CRT_NONSTDC_DEPRECATE(_swab)          _CRTIMP void   __cdecl swab(__inout_bcount_z(_SizeInBytes) char * _Buf1,__inout_bcount_z(_SizeInBytes) char * _Buf2, __in int _SizeInBytes);_CRT_NONSTDC_DEPRECATE(_ultoa) _CRT_INSECURE_DEPRECATE(_ultoa_s) _CRTIMP char * __cdecl ultoa(__in unsigned long _Val, __out_z char * _Dstbuf, __in int _Radix);#pragma warning(pop)onexit_t __cdecl onexit(__in_opt onexit_t _Func);
    123 #endif  /** __STDC__ */
    124 #ifdef  __cplusplus}
    125 #endif
    126 #ifdef  _MSC_VER#pragma pack(pop)#endif  /** _MSC_VER */
    127 #endif  /** _INC_STDLIB *//** 88bf0570-3001-4e78-a5f2-be5765546192 */
    View Code

      

    包含的函数

    输入样式:C语言模式:#include <stdlib.h>

    C++样式:#include <cstdlib>

    1函数名称:calloc

    函数原型: void * calloc(unsigned n,unsigned size);

    函数功能: 分配n个数据项的内存连续空间,每个数据项的大小为size

    函数返回: 分配内存单元的起始地址,如果不成功,返回0

    2函数名称:free

    函数原型: void free(void* p);

    函数功能: 释放p所指的内存区

    函数返回:

    参数说明: p-被释放的指针

    3函数名称:malloc

    函数原型: void * malloc(unsigned size);

    函数功能: 分配size字节的存储区

    函数返回: 所分配的内存区地址,如果内存不够,返回0

    4函数名称: realloc

    函数原型: void * realloc(void * p,unsigned size);

    函数功能: 将p所指出的已分配内存区的大小改为size,size可以比原来分配的空间大或小

    函数返回: 返回指向该内存区的指针.NULL-分配失败

    5函数名称: rand

    函数原型: int rand(void);

    函数功能: 产生0到32767间的随机整数(0到0x7fff之间)

    函数返回: 随机整数

    6函数名称: abort

    函数原型: void abort(void)

    函数功能: 异常终止一个进程.

    7函数名称: exit

    函数原型: void exit(int state)

    函数功能: 程序中止执行,返回调用过程

    函数返回:

    参数说明: state:0-正常中止,非0-非正常中止

    8函数名称: getenv

    函数原型: char* getenv(const char *name)

    函数功能: 返回一个指向环境变量的指针

    函数返回:环境变量的定义

    参数说明: name-环境字符串

    9函数名称: putenv

    函数原型: int putenv(const char *name)

    函数功能: 将字符串name增加到DOS环境变量中

    函数返回: 0:操作成功,-1:操作失败

    参数说明: name-环境字符串

    10函数名称: labs

    函数原型: long labs(long num)

    函数功能: 求长整型参数的绝对值

    函数返回:绝对值

    11函数名称: atof

    函数原型: double atof(char *str)

    函数功能: 将字符串转换成一个双精度数值

    函数返回: 转换后的数值

    参数说明: str-待转换浮点型数的字符串

    12函数名称: atoi

    函数原型: int atoi(char *str)

    函数功能: 将字符串转换成一个整数值

    函数返回: 转换后的数值

    参数说明: str-待转换为整型数的字符串

    13函数名称: atol

    函数原型: long atol(char *str)

    函数功能: 将字符串转换成一个长整数

    函数返回: 转换后的数值

    参数说明: str-待转换为长整型的字符串

    14函数名称:ecvt

    函数原型: char *ecvt(double value,int ndigit,int *dec,int *sign)

    函数功能: 将浮点数转换为字符串

    函数返回: 转换后的字符串指针

    参数说明: value-待转换底浮点数,ndigit-转换后的字符串长度

    15函数名称:fcvt

    函数原型: char *fcvt(double value,int ndigit,int *dec,int *sign)

    函数功能: 将浮点数变成一个字符串

    函数返回: 转换后字符串指针

    参数说明: value-待转换底浮点数,ndigit-转换后底字符串长度

    展开全文
  • C语言头文件中#include "stdlib.h"的作用 stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C、C++语言的最常用的系统函数 该文件包含了的C语言标准库函数的定义  stdlib.h里面定义了五种类型...

    C语言中头文件中#include "stdlib.h"的作用

    stdlib 头文件即standard library标准库头文件
    stdlib 头文件里包含了C、C++语言的最常用的系统函数
    该文件包含了的C语言标准库函数的定义
      stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。具体的内容你自己可以打开编译器的include目录里面的stdlib.h头文件看看。

    stdlib.h用法  
    1函数名称: calloc

    函数原型: void * calloc(unsigned n,unsign size);

    函数功能: 分配n个数据项的内存连续空间,每个数据项的大小为size

    函数返回: 分配内存单元的起始地址,如果不成功,返回0

    2函数名称: free

    函数原型: void free(void* p);

    函数功能: 释放p所指的内存区

    函数返回:

    参数说明: p-被释放的指针

    3函数名称: malloc

    函数原型: void * malloc(unsigned size);

    函数功能: 分配size字节的存储区

    函数返回: 所分配的内存区地址,如果内存不够,返回0

    4函数名称: realloc

    函数原型: void * realloc(void * p,unsigned size);

    函数功能: 将p所指出的已分配内存区的大小改为size,size可以比原来分配的空间大或小

    函数返回: 返回指向该内存区的指针.NULL-分配失败

    5函数名称: rand

    函数原型: int rand(void);

    函数功能: 产生0到32767间的随机整数(0到0x7fff之间)

    函数返回: 随机整数

    6函数名称: abort

    函数原型: void abort(void)

    函数功能: 异常终止一个进程.

    7函数名称: exit

    函数原型: void exit(int state)

    函数功能: 程序中止执行,返回调用过程

    函数返回:

    参数说明: state:0-正常中止,非0-非正常中止

    8函数名称: getenv

    函数原型: char* getenv(const char *name)

    函数功能: 返回一个指向环境变量的指针

    函数返回: 环境变量的定义

    参数说明: name-环境字符串

    9函数名称: putenv

    函数原型: int putenv(const char *name)

    函数功能: 将字符串name增加到DOS环境变量中

    函数返回: 0:操作成功,-1:操作失败

    参数说明: name-环境字符串

    10函数名称: labs

    函数原型: long labs(long num)

    函数功能: 求长整型参数的绝对值

    函数返回: 绝对值

    11函数名称: atof

    函数原型: double atof(char *str)

    函数功能: 将字符串转换成一个双精度数值

    函数返回: 转换后的数值

    参数说明: str-待转换浮点型数的字符串

    12函数名称: atoi

    函数原型: int atoi(char *str)

    函数功能: 将字符串转换成一个整数值

    函数返回: 转换后的数值

    参数说明: str-待转换为整型数的字符串

    13函数名称: atol

    函数原型: long atol(char *str)

    函数功能: 将字符串转换成一个长整数

    函数返回: 转换后的数值

    参数说明: str-待转换为长整型的字符串

    14函数名称: ecvt

    函数原型: char *ecvt(double value,int ndigit,int *dec,int *sign)

    函数功能: 将浮点数转换为字符串

    函数返回: 转换后的字符串指针

    参数说明: value-待转换底浮点数,ndigit-转换后的字符串长度

    15函数名称: fcvt

    函数原型: char *fcvt(double value,int ndigit,int *dec,int *sign)

    函数功能: 将浮点数变成一个字符串

    函数返回: 转换后字符串指针

    参数说明: value-待转换底浮点数,ndigit-转换后底字符串长度

    展开全文
  • 今天想复习一下stdlib.h里的一些常用的函数。 1.double atof(const char *str) //把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。 //str -- 要转换为浮点数的字符串。函数返回转换后的双精度...

    我已经好久没有看过c/c++了,感觉好几个月了似的(其实没有。。。),好多东西都忘了,真的是几天不看感觉就生疏,还是用的少的原因吧。今天想复习一下stdlib.h里的一些常用的函数。

    1.double atof(const char *str) 
    /*把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。
    str -- 要转换为浮点数的字符串。函数返回转换后的双精度浮点数,如果没有执行有效的转换,
    则返回零(0.0)。*/
    
    
    2.int atoi(const char *str) 
    //把参数 str 所指向的字符串转换为一个整数(类型为 int 型)
    
    
    3.long int atol(const char *str) 
    //把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。
    
    
    4.double strtod(const char *str, char **endptr)
    /*C 库函数  把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。
    endptr -- 对类型为 char* //的对象的引用,其值由函数设置为 str 中数值后的下一个字符。
    (说了堆什么玩意,,)*/
    
    char str[30] = "2019.2001 This is fmm";
    char *ptr;
    double ret;
    ret = strtod(str, &ptr);
    printf("数字(double)是 %lf\n", ret);
    printf("字符串部分是 |%s|", ptr);
    
    
    5.void free(void *ptr)
    //C 库函数  释放之前调用 calloc、malloc 或realloc 所分配的内存空间
    /* 最初的内存分配 */str = (char *) malloc(15);
    /* 重新分配内存 */str = (char *) realloc(str, 25);
    
    6.int rand(void) 
    /*C 库函数 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。
    RAND_MAX 是一个常量,它的默认值在不同的实现中会有所不同*/
    
    
    7.void *bsearch(const void *key, const void *base, size_t nitems,
     size_t size, int (*compar)(const void *, const void *))
    /*C 库函数  对 nitems 对象的数组执行二分查找,base 指向进行查找的数组,
    key 指向要查找的元素,size 指定数组中每//个元素的大小。 
    数组的内容应根据 compar 所对应的比较函数升序排序。*/
    
    
    8.void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 
    
    /*
     对数组进行排序。
     base -- 指向要排序的数组的第一个元素的指针。
     nitems -- 由 base 指向的数组中元素的个数。
     size -- 数组中每个元素的大小,以字节为单位。
     compar -- 用来比较两个元素的函数。
    */
    
    展开全文
  • stdlib 头文件

    2019-04-21 16:13:59
    stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C、C++语言的最常用的系统函数 该文件包含了的C语言标准库函数的定义  stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t...
  • C语言常用头文件总结

    千次阅读 2014-10-20 10:47:50
    C语言常用头文件总结 序号 库类别 头文件   1 字符处理 ctype.h   2 地区化 local.h   3 数学函数 math.h   4 信号处理 signal.h   5 输入输出 stdio.h   6 实用工具程序...
  • 我在stdlib.h中只找到了原型 请问他的实际实现代码在哪?
  • stdlib头文件简单说明

    2016-11-05 15:41:33
    stdlib 头文件里包含了C、C++语言的最常用的系统函数,该文件包含了的C语言标准库函数的定义。stdlib.h里面定义了五种类型、一些宏和通用工具函数。类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_...
  • C语言常用头文件

    2020-02-20 19:40:06
    stdio.h “standard input & output"(标准输入输出),如用到标准输入输出函数时,就要包含它。...stdlib.h standard library标准库 常用的函数如malloc()、calloc()、realloc()、free()、r...
  • stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数. 库变量 下面是头文件 stdlib.h 中定义的变量类型 序号 变量 描述 1 size_t 这是无符号整数类型,它是 sizeof 关键字的结果. 2 wchar_t 这是一个宽...
  • 不完全统计,C语言标准库中的头文件有15个之多,所以我主要介绍常用的这四个头文件stdio.h,string.h,math.h,stdlib.h,以后用到其他的再做补充。下面上干货:1.:定义了输入输出函数、类型以及宏,函数几乎占了标准...
  • c语言头文件stdlib.h的详细介绍

    千次阅读 多人点赞 2017-09-12 20:06:41
    stdlib 头文件即standard library标准库头文件stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_...
  • 使用时必须包含头文件stdlib.h​它可以调用操作系统底层的SHELL命令。比如::Windows下的 CMD.exe命令行的命令。system("pause");///暂停程序的运行。system("notepad");///相当于打开了命令行,调用命令notepad,...
  • 头文件,顾名思义就是定义在C语言文件头部的那一坨东西 #include <stdio.h>这就是一个标准输入输出的头文件声明,头文件声明写在定义文件(后缀名.c的文件)的头部,并在定义文件中具体实现 #include <stdlib...
  • c语言常用头文件

    2013-01-06 11:11:33
    1 错误处理 errno.h  2 字符处理 ctype.h  3 地区化 local.h  4 数学函数 math.h  5 信号处理 signal.h  ...7 实用工具程序 stdlib.h  8 字符串处理 string.h 具体如下: ct
  • 头文件 stdio.h scanf、printf getchar、putchar gets、puts stdlib.h rand()%a+b:产生0~32767的随机数,a为范围,b为范围起始值,即产生b~b+a-1的随机数。 srand(随机种子):如srand(time(0))。 malloc(8)、...
  • C语言常用头文件及用途

    万次阅读 多人点赞 2012-10-11 20:28:41
    序号 库类别 头文件 详细说明  1 错误处理 errno.h  2 字符处理 ctype.h  3 地区化 local.h  4 数学函数 math.h  5 信号处理 signal.h  6 输入输出 stdio.h  7 实用工具程序 stdlib....
  • 头文件形式: 1.头文件marketShopsplit_header.h *一般放构造体和函数声明 #ifndef MARKETSHOPSPLIT_HEADER_H_INCLUDED #define MARKETSHOPSPLIT_HEADER_H_INCLUDED ...stdlib.h> #include <st...
  • C语言头文件stdlib.h里面有什么函数

    千次阅读 2018-10-28 16:40:53
    主要含有的内容方向: A.字符串转换 B. 随机数 C.内存管理 D.与环境的接口 E.查找与排序 F.整数运算 G....(1)关于 stdio.h 和 stdlib.h 包含的函数 ...(2)C语言库函数stdlib.h里面都包含什么 https:/...
  • rand() (这个函数我之前关于数组的博客写到了https://blog.csdn.net/viafcccy/article/details/83960390) srand(unsigned t)埋下时间种子 实例:int random1;  srand(time(0));//等效于srand(time(null));...
  • C语言中的stdlib.h头文件

    千次阅读 2019-03-07 10:09:28
    stdlib 头文件stdlib 头文件的介绍stdlib.h...stdlib 头文件里包含了C、C++语言的最常用的系统函数, 该文件包含了的C语言标准库函数的定义 stdlib.h里面定义了五种类型、一些宏和通用工具函数 类型: 例如 size_...
  • ``` #ifndef __GAME_H__ #define __GAME_H__ ...这段代码放在了一个头文件里面,为什么第一次编译后,修改define ROW的值都没有用了,比如我修改ROW 12为ROW10,程序还是依照未修改前的运行。
  • stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C、C++语言的最常用的系统函数 该文件包含了的C语言标准库函数的定义  stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、...
  • c语言stdlib库函数小结 前言:因为刷题的时候经常遇到字符串转化为数字的问题,而c语言标准库中的stdlib库函数可以有效地解决这个问题。所以今天做个小结。因为c++是向下兼容c语言的,支持所有的c头文件,但是为了...
  • C语言stdlib库(#include<stdlib.h>)

    千次阅读 2017-09-05 09:44:48
    stdlib.h中头文件定义了四个变量类型,用于执行一般函数的几个宏和各类函数。 库变量 以下是在头文件stdlib.h中定义的变量类型: S.N. 变量和说明 1 size_t  这是一个无符号整数类型的sizeof关键字的...
  • linux C语言头文件

    2019-01-24 14:49:35
    /C语言标准头文件: #include &amp;lt;assert.h&amp;gt; // assert断言 #include &amp;lt;stdio.h&amp;gt; // 定义输入/输出函数 #include &amp;lt;stdlib.h&amp;gt; // 定义杂项...
  • C++头文件C语言头文件的区别: C语言风格的头文件(带.h): #include<stdio.h> //输入/输出函数 #include<string.h> //字符串处理 #include<stdlib.h> //杂项函数\ 内存分配 C++风格的头文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,928
精华内容 771
关键字:

c语言stdlib头文件

c语言 订阅