zoukankan      html  css  js  c++  java
  • cstdlib库

    stdlib.h是C标准函数库的头文件,声明了数值与字符串转换函数, 伪随机数生成函数, 动态内存分配函数, 进程控制函数等公共函数。 C++程序应调用等价的cstdlib头文件.

    一、常量

    常量 作用
    NULL 一般定义为0, 或0L, 或(void*)0 表示空指针常量的宏; 换句话说,一个常量用来表示一个总是指向无效的内存地址的指针值。
    EXIT_FAILURE 一个非0值 用来指示程序失败的结束,一般用于exit().
    EXIT_SUCCESS 0 用来指示程序成功的结束,一般用于exit()..
    RAND_MAX >= 32767 函数rand()所能返回的最大的值.
    MB_CUR_MAX 当前locale中多字节字符的最大字节数目

    二、数据类型

    size_t
    算子sizeof返回结果的数据类型,实际上是无符号整型.
    div_t , ldiv_t,lldiv_t
    函数div, ldiv, lldiv的返回结果的数据类型,实际上是包含两个整数的结构类型.

    三、函数

    3.1 类型转换

    函数 功能
    atof 把字符串转换为双精度浮点数。相当于strtod(s, (char**)NULL).
    atoi 把字符串转换为整型. 相当于(int)strtol(s, (char**)NULL, 10).
    atol 把字符串转换为长整型. Equivalente a strtol(s, (char**)NULL, 10).
    atoll 把字符串转换为长长整型. Equivalente a strtol(s, (char**)NULL, 10). 这是C99新增加的库函数。
    strtod 把字符串转换为双精度浮点数,检查结果是否溢出,并返回字符串不能转换部分的地址.
    strtof 把字符串转换为单精度浮点数,检查结果是否溢出,并返回字符串不能转换部分的地址.
    strtold 把字符串转换为长双精度浮点数,检查结果是否溢出,并返回字符串不能转换部分的地址.
    strtol 把字符串转换为长整型,检查结果是否溢出,并返回字符串不能转换部分的地址.
    strtoll 把字符串转换为long long int,检查结果是否溢出,并返回字符串不能转换部分的地址.
    strtoul 把字符串转换为无符号长整形,检查结果是否溢出,并返回字符串不能转换部分的地址.
    strtoull 把字符串转换为unsigned long long int,检查结果是否溢出,并返回字符串不能转换部分的地址.

    3.2 伪随机数序列生成

    函数 功能
    rand 返回在0到RAND_MAX之间的伪随机数. 不接受参数作为随机数种子,因此产生的伪随机数列相同,有利于程序调试。
    srand 初始化rand()接受无符号整型参数作为伪随机数种子.如果种子相同,伪随机数列也相同。

    3.3 内存的分配与释放

    函数 功能
    aligned_alloc 边界对齐的动态内存分配.
    calloc 数组的动态内存分配,且初始化为全零
    malloc 动态内存分配,其内容不初始化
    realloc 释放老的动态内存块,按照给出的尺寸分配新的动态内存块,老的内存块的内容尽量复制到新的内存块
    free 系统释放动态分配的内存. 如果是空指针,则无动作发生;如果指针所指不是动态分配的内存块或者是已释放的内存块,则行为是未定义的。

    3.4 进程控制/与运行环境的沟通

    函数 功能
    abort 导致程序非正常的结束,各种流缓冲区与临时文件直接放弃。实际上抛出raise(SIGABRT),缺省的信号处理行为是使用退出代码3执行终止(terminate)操作。如果SIGABRT被捕捉且信号处理程序不返回,则程序将不终止.
    atexit 登记一个函数,当程序使用exit正常退出时被登记的函数自动被调用.
    exit 程序正常终止。首先atexit()登记的函数按照登记的逆序被调用;如果多次调用atexit登记了多个函数,按照登记的逆序调用这些函数。如果一个函数被登记了多次,则程序正常退出时该函数也将被调用多次。然后所有缓冲区中的数据被写回(flushed);所有打开着的流被关闭;tmpfile函数创建的文件被删除。最后,控制权返回给调用环境,返回数值表示程序返回时的状态,0表示EXIT_SUCCESS, 1表示EXIT_FAILURE.
    at_quick_exit 登记一个函数,当程序使用quick_exit正常退出时被登记的函数自动被调用.
    _Exit 程序正常终止, 但atexit(), at_quick_exit(), signal()登记的函数不被调用; 打开的流、文件是否被关闭,由编译器的实现者决定
    getenv 获得某一个环境变量的字符串值,如果该环境变量不存在,返回NULL.
    quick_exit 程序正常终止, 但atexit(), 登记的函数不被调用; at_quick_exit()登记的函数按登记顺序的逆序被调用。
    system 把参数作为外部环境的命令执行。 如果参数为空,则判断外部环境是否有命令解释器。

    3.5 搜索与排序

    函数 功能
    bsearch 折半搜索.
    qsort 快速排序.

    3.6 整数算术

    函数 功能
    abs, labs, llabs 计算整数的绝对值.
    div, ldiv, lldiv 计算整数除法的商与余数.

    3.7 多字节字符/宽字符转换

    函数 功能
    mblen 计算多字节字符的长度并确定是否为有效字符.
    mbtowc 多字节字符转换为宽字符.
    wctomb 宽字符转换为多字节字符.

    3.8 多字节字符串/宽字符串转换

    函数 功能
    mbstowcs 多字节字符串转换为宽字符串.
    wcstombs 宽字符串转换为多字节字符串.

    参考链接:
    https://wikipedia.sogou.se/wiki/Stdlib.h

  • 相关阅读:
    Flush the AOS cache from code
    EntityConnectionStringBuilder 构造EF连接字符串
    AX中文转拼音
    AX2012 AOT中Web部署显示二级以上菜单
    clearCompanyCache
    AX2009 打印到PDF优化
    AX ODBC读取其他SQL数据库服务器数据
    AX2009报表打印固定长度Barcode条码
    Create Product Variant
    Rename AOT Object
  • 原文地址:https://www.cnblogs.com/chendeqiang/p/12861585.html
Copyright © 2011-2022 走看看