精华内容
下载资源
问答
  • Go语言标准库文档中文版,通过对Golang中文社区网站文档下载、分析、提取、整理后生成的chm文档,有结构,有索引,引用全部是本地生成的页面,方便快捷,希望能够给golang开发者提供便利。 因为文档太多,所以全部是...
  • C/C++标准库源代码

    千次下载 热门讨论 2015-08-16 10:10:31
    C/C++标准库源代码,从Microsoft Visual Studio 10.0即Visual Studio 2010中提取出来的,希望对大家的学习和工作有所帮助。
  • 这个是我从网上精心整理的资料!!!往大家好好用!!!
  • C标准库源代码(学习C/C++必备)

    热门讨论 2010-04-09 09:42:33
    C标准库源代码,能提高对C的理解,不错的哦 下载文件列表 Pack : clibsource.rar C 标准库源代码\ABORT.C C标准库源代码\ABS.C C标准库源代码\ACCESS.C C标准库源代码\ADJUSTFD.C C标准库源代码\ALGRITHM C标准库源...
  • python3.6 标准库 chm格式

    热门讨论 2017-04-13 23:13:30
    python 3.6 library 标准库 chm. 找了很久没找到,干脆自己做了一个。 python的文档是一摊屎。 不如PHP好用。
  • Python标准库中文版 高清.chm版

    热门讨论 2013-08-19 05:26:23
    标准库是语言的重要组成部分,这个文档可以帮助你更好的学习Python和其标准库,极其使用
  • c标准库总结

    千次阅读 多人点赞 2019-03-14 10:28:54
    c标准库 前言 学习c语言十几年了,却从来没有完整的将c标准库看一看,我想在这一点上我是欠缺的。作为一个技术人员,无论什么时候都不能忘记自己最擅长的技能,这次借一个偶然的契机,翻一翻c标准库,希望以后自己在...

    c标准库

    前言

    学习c语言十几年了,却从来没有完整的将c标准库看一看,我想在这一点上我是欠缺的。作为一个技术人员,无论什么时候都不能忘记自己最擅长的技能,这次借一个偶然的契机,翻一翻c标准库,希望以后自己在技术上越来越牛。

    说明

    c++库和c库包含相同的结构体的定义,其区别主要如下:

    • 每个头文件与c语言版本具有相同的名称,但是带有“c”前缀,没有扩展文件名。例如:c语言头文件<stdio.h>的c++等价头文件为。
    • 库的每个元素都在std空间中定义。

    本文档的示例中,使用c风格的版本,要使用c++的版本替换成相应的头文件就好。

    在c++版本实现中也有一些特定的区别:

    • wchar_t, char16_t, char32_t 和 bool是c++中的基本类型,因此不会在c版本中出现,这同样适用于<iso646.h>中的宏,因为它们是c++中的关键字。
    • 以下函数的声明中有与其参数常量相关的更改:strchr、strpbrk、strrchr、strstrstr、memchr。
    • 定义在<cstdlib>中的atexit、exit、abort函数在c++中的行为有所增加。
    • 有些函数的重载版本提供了作为参数的附加类型和相同的语义,例如cmath头文件中函数的float和long double版本,或者abs和div的long版本。

    c++98包含c90标准中的库;
    c++11包含c99标准中描述的c库;
    2011 ISO标准的其他介绍与c++不兼容。

    说明:本文主要对c99(即c++11)库进行描述。

    <cassert>&lt;assert.h>

    说明

    该文件中定义了一组宏函数作为标准调试工具。对应的宏函数为assert。

    函数

    函数assert

    void assert(int expression);
    

    如果表达式为0,则会向标准错误设备写入一条消息,并调用abort,终止程序的额执行。
    如果在#include<assert.h>时,已经定义了名为ndebug的宏,则禁用此宏。因此可以在调试时使用断言,但是在生产版本中通过如下行为禁用这些断言调用:

    #define NDEBUG
    

    调用示例:

    #include <stdio.h>      /* printf */
    #include <assert.h>     /* assert */
    
    void print_number(int* myInt) {
           assert (myInt!=NULL);
           printf ("%d\n",*myInt);
    }
    
    int main (){
         int a=10;
         int * b = NULL;
         int * c = NULL;
    
         b=&a;
    
         print_number (b);
         print_number (c);
    
         return 0;
    }
    

    <cctype>/<ctype.h>

    说明

    此头文件声明了一组用于分类和转换单个字符的函数。

    函数

    isalnum

    int isalnum ( int c );
    

    检查c是十进制数字还是大小写字母。如果为假返回0,否则返回其它值。

    isalpha

    int isalpha ( int c );
    

    检查c是否为字母。为假返回0,否则返回其它值。

    isblank

    int isblank ( int c );
    

    检查c是否是空白字符。为假返回0,否则返回其它值。

    iscntrl

    int iscntrl ( int c );
    

    检查c是否是控制字符。为假返回0,否则返回其它值。

    isdigit

    int isdigit ( int c );
    

    检查c是否是十进制字符。为假返回0,否则返回其它值。

    isgraph

    int isgraph ( int c );
    

    检查c是否有图形表示法。带有图形表示法的字符是除了空白字符(比如 ’ ')以外的所有可打印的字符。为假返回0,否则返回其它值。

    islower

    int islower ( int c );
    

    检查c是否是小写字母。为假返回0,否则返回其它值。

    isprint

    int isprint ( int c );
    

    检查c是否是可打印字符。为假返回0,否则返回其它值。

    ispunct

    int ispunct ( int c );
    

    检查c是否是标点符号。为假返回0,否则返回其它值。

    isspace

    int isspace ( int c );
    

    检查c是否是空格。为假返回0,否则返回其它值。

    isupper

    int isupper ( int c );
    

    检查c是否是大写字母。为假返回0,否则返回其它值。

    isxdigit

    int isxdigit ( int c );
    

    检查c是否是十六进制数字。为假返回0,否则返回其它值。

    tolower

    int tolower ( int c );
    

    将c转换成小写字符。

    toupper

    int toupper ( int c );
    

    将c转换成大写字符。

    <cerrno>/<errno.h>

    该文件中主要定义了如下宏:

    • errno 上次的错误号;
    • 该宏可以由程序读和写。

    <cfloat>/&ltfloat.h>

    含了一组与浮点值相关的依赖于平台的常量。

    描述
    FLT_ROUNDS定义浮点加法的舍入模式,它可以是下列任何一个值: -1 表示无法确定 ; 0 表示趋向于零; 1表示去最近的值; 2趋向于正无穷; 3趋向于负无穷。
    FLT_RADIX此宏定义了指数表示的基数。基数2表示二进制,基数10表示十进制,基数16表示十六进制。
    FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG定义了FLT_RADIX基数中的位数
    FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10定义了舍入后不会改变表示的十进制数字的最大值。
    FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP定义了基数为FLT_RADIX时的指数的最小负整数值。
    FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37定义基数为10时指数的最小负整数值。
    FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP定义基数为FLT_RADIX时指数的最大整数值。
    FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37定义基数为10时的指数的最大整数值。
    FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37定义最大的有限浮点数。
    FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9定义可表示的最小有效数字。
    FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37定义最小的浮点数。

    <ciso646>/<iso646.h>

    定义运算符相关的宏。

    对应操作符
    and&&
    and_eq&=
    bitand&
    bitor|
    compl~
    not!
    not_eq!=
    or||
    or_eq|=
    xor^
    xor_eq^=

    在c++中有相应的保留字,因此可以不需要此头文件。

    <climits>/<limits.h>

    该头文件决定了各种变量类型的各种属性。定义在该头文件中的宏限制各种类型的变量。即变量不能存储任何超出这些限制的值。

    描述
    CHAR_BITchar类型中的比特数8
    SCHAR_MIN有符号字符的最小值-127
    SCHAR_MAX有符号字符的最大值127
    UCHAR_MAX无符号字符的最大值255
    CHAR_MINchar类型的最小值SCHAR_MIN或者0
    CHAR_MAXchar类型的最大值SCHAR_MAX或者UCHAR_MAX
    MB_LEN_MAX多字节字符中的最大字节数1
    SHRT_MIN短整型的最小值-32767(-2^15+1)
    SHRT_MAX短整型的最大值32767(2^15+1)
    USHRT_MAX无符号短整型的最大值65535(2^16-1)
    INT_MINint类型的最小值-32767(-2^15+1)
    INT_MAXint类型的最大值32767(2^15+1)
    UINT_MAX无符号int类型的最大值65535(2^16-1)
    LONG_MIN长整型的最小值-2147483647 (-2^31+1)
    LONG_MAX长整型的最大值2147483647 (2^31+1)
    ULONG_MAX无符号长整型的最大值4294967295 (2^32-1)
    LLONG_MINlong long int的最小值-9223372036854775807 (-2^63+1)
    LLONG_MINlong long int的最大值9223372036854775807 (2^63+1)
    ULLONG_MAX无符号long long int的最大值18446744073709551615 (2^64-1)

    <clocale>/<locale.h>

    c语言支持特定于本地化的设置。例如特定于区域性的日期格式或特定于国家的货币符号。
    每个系统和特定的编译器至少要提供两种区域设置选择:

    • "c"区域设置是最小区域设置。
    • 系统的默认区域设置由运行应用程序的环境提供区域设置配置。

    在此头文件中声明了结构提lconv以及函数setlocale和localeconv,以及配合它们使用的一些宏。

    结构体lconv

    此结构体保存写入数值(货币值和非货币值)的格式信息。函数localconv返回此类型的对象。
    该结构体包含的成员如下:
    typedef struct {
    char *decimal_point;//用于非货币值的小数点字符
    char *thousands_sep;//用于非货币值的千位分隔符
    char *grouping;//一个表示非货币量中每组数字大小的字符串。每个字符代表一个整数值,每个整数指定当前组的位数。值为 0 意味着前一个值将应用于剩余的分组
    char *int_curr_symbol;//国际货币符号使用的字符串。前三个字符是由 ISO 4217:1987 指定的,第四个字符用于分隔货币符号和货币量
    char *currency_symbol;//用于货币的本地符号
    char *mon_decimal_point;//用于货币值的小数点字符
    char *mon_thousands_sep;//用于货币值的千位分隔符
    char *mon_grouping;//一个表示货币值中每组数字大小的字符串。每个字符代表一个整数值,每个整数指定当前组的位数。值为 0 意味着前一个值将应用于剩余的分组
    char *positive_sign;//用于正货币值的字符
    char *negative_sign;//用于负货币值的字符
    char int_frac_digits;//国际货币值中小数点后要显示的位数
    char frac_digits;//货币值中小数点后要显示的位数
    char p_cs_precedes;//如果等于 1,则 currency_symbol 出现在正货币值之前。如果等于 0,则 currency_symbol 出现在正货币值之后
    char p_sep_by_space;//如果等于 1,则 currency_symbol 和正货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和正货币值之间不使用空格分隔
    char n_cs_precedes;//如果等于 1,则 currency_symbol 出现在负货币值之前。如果等于 0,则 currency_symbol 出现在负货币值之后
    char n_sep_by_space;//如果等于 1,则 currency_symbol 和负货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和负货币值之间不使用空格分隔
    char p_sign_posn;//表示正货币值中正号的位置
    char n_sign_posn;//表示负货币值中负号的位置
    char int_p_cs_precedes;//p_cs_precedes的国际格式
    char int_n_cs_precedes;//n_cs_precedes的国际格式
    char int_p_sep_by_space;//p_sep_by_space的国际格式
    char int_n_sep_by_space;//n_sep_by_space的国际格式
    char int_p_sign_posn;//p_sign_posn的国际格式
    char int_n_sign_posn;//n_sign_posn的国际格式
    } lconv

    函数setlocale

    char* setlocale (int category, const char* locale);
    

    设置或读取地域化的信息。

    函数localeconv

    struct lconv* localeconv (void);
    

    设置或读取地域化信息,会返回一个lconv结构类型的对象。

    <cmath>/<math.h>

    定义了常用的数学操作相关的函数。
    如下:

    • cos
    • sin
    • tan
    • acos
    • asin
    • atan
    • atan2
    • cosh
    • sinh
    • tanh
    • acosh
    • asinh
    • atanh
    • exp
    • frexp
    • ldexp
    • log
    • log10
    • modf
    • exp2
    • expm1
    • ilogb
    • log1p
    • log2
    • logb
    • scalbn
    • scalbln
    • pow
    • sqrt
    • cbrt
    • hypot
    • erf
    • erfc
    • tgamma
    • lgamma
    • ceil
    • floor
    • fmod
    • trunc
    • round
    • lround
    • llround
    • rint
    • lrint
    • nearbyint
    • remainder
    • remquo
    • copysign
    • nan
    • nextafter
    • nexttoward
    • fdim
    • fmax
    • fmin
    • fabs
    • abs
    • fma
    • fpclassify
    • isfinite
    • isinf
    • isnan
    • isnormal
    • signbit
    • isgreater
    • isgreaterequal
    • isless
    • islessequal
    • islessgreater
    • isunordered
    • math_errhandling
    • INFINITY
    • NAN
    • HUGE_VAL
    • HUGE_VALF
    • HUGE_VALL

    <csetjmp>/<setjmp.h>

    定义了宏setjmp、函数longjmp以及变量类型jmp_buf,用来实现远程跳转。

    jmp_buf类型

    用来存储宏setjmp和longjmp之间的环境相关的信息。在调用setjmp时存储,然后在longjmp时恢复

    setjmp

    int setjmp (jmp_buf env);
    

    此宏用来把当前的环境保存在变量enviroment中,以便longjmp调用时使用。

    longjmp

    void longjmp (jmp_buf env, int val);
    

    该函数恢复最近一次调用setjmp宏时保存的环境,就jmp_buf参数的设置是由之前调用的额setjmp生成的。

    <csignal>/<signal.h>

    处理信号的c标准库。包括sig_atomic_t类型,信号处理设置函数signal,信号生成函数raise。

    sig_atomic_t类型

    int类型,信号处理程序中作为变量使用。它是一个对象的整数类型,该对象可以作为一个原子实体访问,即使存在异步信号时,该对象可以作为一个原子实体访问。

    signal

    注册信号处理函数。

    raise

    生成一个信号。

    宏类型

    类型信号
    int (信号)SIGABRT程序异常终止
    int (信号)SIGFPE算术运算出错,如除数为0或者溢出
    int (信号)SIGILL非法函数映像,如非法指令
    int (信号)SIGINT中断信号,如ctrl-C
    int (信号)SIGSEGV非法访问存储器,如访问不存在的内存单元
    int (信号)SIGTERM发送给本程序的终止请求信号
    函数(handlers)SIG_DFL默认的信号处理程序
    函数(handlers)SIG_ERR特殊返回值表示一个信号错误
    函数(handlers)SIG_IGN忽略信号

    <cstdarg>/<stdarg.h>

    该头文件定义了一个变量类型va_list和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数。
    可变参数的函数在参数列表的末尾使用省略号(…)定义。
    例如:

    返回类型 函数名称(参数1, ...)
    

    要访问附加的参数通过宏va_start,va_arg,va_end来实现。

    库变量va_list

    适用于va_start()、va_arg()和va_end()这三个宏存储信息的类型。

    宏库

    描述
    void va_start (va_list ap, last_arg)此宏初始化ap变量,与va_arg和va_end一起使用。lase_arg是最后一个传递给函数的已知的固定参数,即省略号之前的参数,此参数不应为引用类型。
    type va_arg(va_list ap, type)此宏检索函数参数列表中类型为type的下一个参数。
    void va_end(va_list ap)此宏允许使用va_start宏带有的可变参数的函数返回。如果在从函数返回之前没有调用va_end,则结果为未定义。
    void va_copy (va_list dest, va_list src)拷贝va_list src的内容到dest

    <cstdbool>/&ltstdbool.h>

    定义true和false的宏。

    <cstddef>/<stddef.h>

    该头文件定义各种变量类型和宏。

    类型

    类型含义
    ptrdiff_t有符号整数类型,它是两个指针相减的结果
    size_t无符号整数类型,它是sizeof关键字的结果
    max_align_t对其类型大小
    nullptr_t空指针类型

    宏函数

    类型含义
    offset返回结一个构体成员的偏移量

    类型含义
    NULL空指针

    <cstdint>/<stdint.h>

    此文件是类型支持库的一部分,提供定宽整数类型和部分c数值极限接口。

    类型

    int8_t uint8_t
    int16_t uint16_t
    int32_t uint32_t
    int64_t uint64_t
    分别为宽度恰为 8 、 16 、 32 和 64 位的有/无符号整数类型
    无填充位并对负值使用补码(仅若实现支持该类型才提供)

    int_least8_t uint_least8_t
    int_least16_t uint_least16_t
    int_least32_t uint_least32_t
    int_least64_t uint_least64_t
    分别为宽度至少有 8 、 16 、 32 和 64 位的最小的有/无符号整数类型

    int_fast8_t uint_fast8_t
    int_fast16_t uint_fast16_t
    int_fast32_t uint_fast32_t
    int_fast64_t uint_fast64_t
    分别为宽度至少有 8 、 16 、 32 和 64 位的最快的有/无符号整数类型

    intmax_t uintmax_t 最大宽度的有/无符号整数类型
    intptr_t uintptr_t 足以保有指针的有/无符号整数类型

    对应上述类型的最大值、最小值以及特殊值。

    <cstdio>/<stdio.h>

    输入输出标准库。

    流属性

    大部分属性在使用fopen打开一个文件的时候定义,如下:

    • 读写权限
    • 文本/二进制
    • 缓冲
    • 流的方向

    流标识

    主要有以下三种:

    • 错误标识
    • 文件结束标识
    • 位置标识

    函数

    函数功能
    remove删除文件
    rename重命名文件
    tmpfile打开一个临时文件
    tmpnam生成一个临时文件
    fclose关闭文件
    fflushFlush流
    fopen打开文件
    freopen把一个新的文件名与给定的打开流相关联,同时关闭流中的旧文件
    setbuf设置流的缓冲区
    setvbuf定义流缓冲的函数
    fprintf格式化写入流
    fscanf从流读取格式化输入
    printf格式化打印到stdout
    scanf从标准输入取
    snprintf格式化打印到缓冲中
    sprintf发送格式化输出到字符串
    sscanf从字符串读取格式化输入
    vfprintf使用参数列表发送格式化输出到流中
    vfscanf从流中执行格式化输入
    vprintf使用参数列表发送格式化输出到标准输出stdout
    vscanf字符串格式化输入函数
    vsnprintf从参数列表格式化输出到buffer
    vsprintf从参数列表格式化输出到字符串
    vsscanf从字符串格式输入到参数列表
    fgetc从流中取一个字符
    fgets从流中取字符串
    fputc写入字符到流中
    fputs写入字符串到流中
    getc从流中取一个字符
    getchar从标准输入取一个字符
    gets从标准输入取一个字符串
    putc写入字符到流中
    putchar写字符到标准输出
    puts写字符串到标准输出
    ungetc把一个字符推入到指定的流中,以便它是下一个被读取到的字符
    fread从指定的流中读取数据到所指向的数组中
    fwrite写数据到指定的流中
    fgetpos获取流中的当前位置
    fseek设置流的文件位置给定的偏移
    fsetpos设置指定位置
    ftell返回给定流的当前文件位置
    rewind返回文件位置为给定流的文件的开头
    clearerr清除给定流的文件结束和错误标识
    feof是否到文件末尾
    ferror测试流的错误标识
    perror打印错误消息

    功能
    BUFSIZ缓冲尺寸
    EOF文件结束
    FILENAME_MAX文件名最大长度
    FOPN_MAX能同时打开的文件数量
    L_tmpnam字符数组可以存储的由tmpnam函数创建的临时文件名的最大长度
    NULL空指针
    TMP_MAXtmpnam函数可生成的独特文件名的最大数量

    类型

    类型描述
    FILE适合存储文件流信息的对象类型
    fpos_t适合存储文件中任何位置的对象类型
    size_t无符号整数类型,是sizeof关键字的结果

    <cstdlib>/<stdlib.h>

    此文件中定义了一些通用的函数,包括内存动态管理,随机数生成等等。

    函数

    • 字符串转换相关:

      函数功能
      atof字符串转换成double类型
      atoi字符串转换成整型
      atol字符串转换成长整型
      atoll字符串转换成长长整型
      strtod字符串转换成double类型
      strtof字符串转换成浮点型
      strtol字符串转换成长整型
      strtold字符串转换成长double型
      strtoll字符串转换成长长整型
      strtoul字符串转换成无符号长整型
      strtoull字符串转换成无符号长长整型
    • 随机相关

      函数功能
      rand生成随机数
      srand初始化随机数生成器
    • 动态内存管理

      函数功能
      calloc分配并且用0初始化数组
      free释放内存
      malloc分配内存
      realloc重新分配内存
    • 环境相关

      函数功能
      abort中止当前进程
      atexit设置执行exit时执行的函数
      at_quick_exit设置执行quick_exit时执行的函数
      exit结束调用进程
      getenv获取环境变量
      quick_exit快速结束调用进程
      system执行系统命令
      _Exit结束调用进程
    • 搜索和排序

      函数功能
      bsearch执行二分查找
      qsort数组排序
    • 整型数相关

      函数功能
      abs求绝对值
      div整数除法
      labs求长整型绝对值
      ldiv求长整型除法
      llabs求长长整型绝对值
      lldiv求长长整型除法
    • 多字节字符

      函数功能
      mblen求多字节字符的长度
      mbtowc将多字节序列转换成宽字符
      wctomb宽字符转换成多字节序列
    • 多字节字符串

      函数功能
      mbstowcs多字节字符串转换成宽字符字符串
      wcstombs宽字符字符串转换成多字节字符串
    • 功能
      EXIT_FAILURE错误结束码
      EXIT_SUCCESS成功结束码
      MB_CUR_MAX多字节字符的最大尺寸
      NULL空指针
      RAND_MAX能随机出来的最大值
    • 类型

      类型功能
      div_tdiv返回的结构体
      ldiv_tldiv返回的结构体
      lldiv_tlldiv返回的结构体
      size_t无符号整型

    <cstring>/<string.h>

    该头文件中定义了一些函数来维护c语言中的字符串和数组。

    函数

    • 拷贝相关

      函数功能
      memcpy拷贝
      memmove用于拷贝字节,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后源内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。
      strcpy拷贝字符串
      strncpy拷贝字符串
    • 级联相关

      函数功能
      strcat级联
      strncat级联
    • 比较

      函数功能
      memcmp比较两块内存
      strcmp比较两个字符串
      strcoll比较两个字符串,但是结果取决于 LC_COLLATE 的位置设置
      strncmp比较两个字符串中的字符
      strxfrm根据程序当前的
    • 搜索

      函数功能
      memchr搜索前n个字节中第一次出现字符c的位置
      strchr搜索字符串中第一次出现的c的位置
      strcspn检索字符串str1中连续几个字符都不包含字符串str2中的字符
      strpbrk检测str1中地一个匹配字符串str2中字符的字符,不包含空结束字符
      strrchr在参数str只想的字符串中搜索最后一次出现字符c的位置
      strspn检测字符串str1中地一个不在字符串str2中出现的字符下标
      strstr在一个字符串中查找第一次出现另一个字符串的位置
      strtok分解字符串为一组字符串,第二个参数为分割符
    • 其它

      函数功能
      memset给内存块赋值
      strerror获取错误字符串的指针
      strlen获取字符串的长度
    • 功能
      NULL空指针
    • 类型

      类型描述
      size_t无符号整型

    <ctgmath>/<tgmath.h>

    此头文件简单的包含<cmath>和<ccomplex>

    <ctime>/<time.h>

    时间相关的库

    函数

    • 时间相关

      函数描述
      clock返回程序执行起,处理器时钟所使用的时间
      difftime返回两个time之间相差的秒数
      mktime把tm结构转换成一个依据本地时区的time_t值
      time计算当前日历时间,并把它编码成time_t格式
    • 转换相关

      函数描述
      asctime把tm结构转换成字符串
      ctime把time_v的值转换成字符串
      gmtime把time_t转换成UTC时间的tm
      localtime把time_t转换成本地时间的tm
      strftime格式化时间为字符串
    • 描述
      CLOCKS_PER_SEC时钟每秒的滴答数
      NULL空指针
    • 类型

      描述
      clock_t时钟类型
      size_t无符号整型
      time_t时间类型
      struct time时间结构体

    <cuchar>/<uchar.h>

    此头文件用来支持UTF-16和UTF-32.

    描述
    STD_UTF_16如果定义了此值则说明char16_t有UTF-16编码
    STD_UTF_32如果定义了此值则说明char32_t有UTF-32编码

    函数

    函数描述
    c16rtomb将16位字符转换成多字节序列
    c32rtomb将32位字符转换成多字节序列
    mbrtoc16将多字节序列转换成16位字符
    mbrtoc32将多字节序列转换成32位字符

    <cwchar>/<wchar.h>

    此文件主要描述宽字符串相关的内容。

    函数

    • 输入/输出

      函数功能
      fgetwc从流中读取宽字符
      fgetws从流中读取宽字符串
      fputwc写宽字符到流中
      fputws写宽字符串到流中
      fwide检测流方向
      fwprintf写格式化数据到流
      fwscanf从流中读格式化数据
      getwc从流中获取宽字符
      getwchar从标准输入获取宽字符
      putwc给流写宽字符
      putwchar给标准输出写宽字符
      swprintf写格式化数据到宽字符串
      swscanf从流中读格式化数据
      ungetwc回退一个wc到流中
      vfwprintf从参数列表输出到流中
      vfwscanf从流中读入到参数列表
      vswprintf同上
      vswscanf同上
      vwprintf同上
      vwscanf同上
      wprinf同上
      wscanf同上
    • 常规

      wcstod
      wcstof
      wcstol
      wcstold
      wcstoll
      wcstoul
      wcstoull

    • 字符和字符串转换

      btowc
      mbrlen
      mbrtowc
      mbsinit
      mbsrtowcs
      wcrtomb
      wctob
      wcsrtombs

    • 字符串

      wcscat
      wcschr
      wcscmp
      wcscoll
      wcscpy
      wcscspn
      wcslen
      wcsncat
      wcsncmp
      wcsncpy
      wcspbrk
      wcsrchr
      wcsspn
      wcsstr
      wcstok
      wcsxfrm
      wmemchr
      wmemcmp
      wmemcpy
      wmemmove
      wmemset

    • 时间

      wcsftime

    • 类型

      mbstate_t
      size_t
      struct tm
      wchar_t
      wint_t

    • NULL
      WCAHR_MAX
      WCHAR_MIN
      WEOF

    <cwctype>/wctype.h>

    宽字符类型相关。

    函数

    iswalnum
    iswalpha
    iswblank
    iswcntrl
    iswdigit
    iswgraph
    iswlower
    iswprint
    iswpunct
    iswspace
    iswupper
    iswxdigit

    towlower
    towupper

    iswctype
    towctrans
    wctrans
    wctype

    类型

    wctrans_t
    wctype_t
    wint_t

    其它

    WEOF

    展开全文
  • C++标准库

    万次阅读 多人点赞 2019-06-14 16:20:23
    1.C++标准定义了庞大且功能丰富的标准库,其内容分为10类,包括: C1语言支持 C2输入/输出 C3诊断功能 C4通用工具 C5字符串 C6容器 C7迭代器 C8算法 ...

    1.C++标准定义了庞大且功能丰富的标准库,其内容分为10类,包括:

    C1语言支持                   C2输入/输出                 C3诊断功能

    C4通用工具                   C5字符串                       C6容器

    C7迭代器                      C8算法                           C9数值操作

    C10本地化

     2.C++标准库所有的头文件都没有扩展名(.h),内容总共在51个标准头文件中定义。其中18个<cname> 形式的头文件(<complex>除外)内容与标准C语言的name.h头文件相同,但包含了C++扩展的功能。

    在<cname>形式的头文件中,与宏定义相关的名称在全局作用域中定义,其他名称在std命名空间中声明。

    另外,在C++中还可以使用name.h形式的C语言头文件,但不建议这样用。

    表1 C++标准库索引

    C++标准库由三组库构成:

    (1)C库:由C标准库扩展而来,强调结构、函数和过程,不支持面向对象技术。

    (2)C++库:增加了面向对象的库,包含了既有关键功能的类

    (3)标准模板库(STL):高效的C++程序库。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。

    以上库文件都被定义在namespace std 中。

    C++库可以不规定头文件的扩展名。

    C标准库

    1)<Cmath>:提供给了22个不同的数学函数,如abs()、sqrt()、exp()等。

    2)<cstdlib>:提供了常用的数学函数,3个特殊函数和2个常量。

    exit():退出程序,清除静态对象

    abort():强制退出程序

    atexit():将一个函数作为参数并在程序退出时调用

    EXIT_SUCCESS:程序已经正常完成

    EXIT_FAULURE:程序正常结束

    3)<cassert>:定义了一个函数assert,用来测试一个条件,并在条件为假时强制程序退出。通常用来判断内存分配是否成功。

    4)<cctype>:提供了确定字符类型的功能。可以判断一个字符是否为数字字符、图形字符、小写、大写或空格并可以将字符进行大小写转换。

    5)<cerrno>:定义了一个变量,用它可以确定程序中发生的错误的类型。

    C++类库

    1)<string>:支持字符串处理的类库

    2)<complex>:提供了复数的表示和算法

    float_complex类

    double_complex类

    long_double_complex类

    3)<ios>定义了I/O流类的虚基类ios,通常不直接用它。

    4)<iostream>:标准I/O流类库,提供了cin、cout等全局对象类来支持输入输出功能

    5)<istream>:输入流类库

    6)<ostream>:输出流类库

    7)<fstream>:读写文件的类

    标准模板库STL

    在标准库中,容器、迭代器、算法和数值操作合称为标准模板库。

    STL被组织为以下13个头文件:<algorithm>,<deque>,<functional>,<iterator>,<vector>,<list>,<map>,<memory>,<numeric>,<queue>,<set>,<stack>,和<utility>。

    几乎所有的标准模板代码采用了类模板和函数模板的形式,因此相比于传统的由函数和类组成的库来说STL提供了更好的代码重用。

    <algothrithm>:提供了通用的算数算法和STL的一般算法。

    sort:以升序重新排列范围内的元素

    swap:交换存储在两个对象中的值

    max_element:指出序列中最大的元素

    find:对范围内的元素进行查找

    copy:复制序列

    replace:将范围内的所有等于old_value的元素都用new_value替代。

    <numerialc>:提供了4类对序列进行数字处理的算法

    accumulate:累加

    product:内乘

    partial_sum:部分和

    adjacent_difference():邻接差值

    展开全文
  • C 标准库参考手册

    千次阅读 2021-06-01 00:25:55
    学习 C 语言标准库,孰能生巧才能手到擒来。

    学习 C 语言标准库,孰能生巧才能手到擒来。

    CSDN

    C标准库参考指南系列译文(1)assert.h

    码农网

    C 标准库 - <stdio.h>

    W3C school

    C 标准库 – <stdlib.h>
    每个函数都有例程

    简单教程

    C 语言标准库 - <stdio.h>
    每个函数都有例程

    自强学堂

    C 标准库 – <stdio.h>
    每个函数都有例程

    菜鸟教程

    C 标准库 - <stdio.h>

    展开全文
  • HAL库与标准库的理解

    千次阅读 多人点赞 2020-12-22 21:03:58
    HAL库的学习HAL库和标准库的原理区别串口通信实验包含的文件区别具体代码区别总结 HAL库和标准库的原理区别 HAL简介: == HAL库 ==是st公司为了更方便地进行stm32之间的移植而开发的库,通用性很强,在不同的两款stm...

    HAL库和标准库的原理区别

    HAL简介:
    == HAL库 ==是st公司为了更方便地进行stm32之间的移植而开发的库,通用性很强,在不同的两款stm32芯片之间的移植基本上不需要修改。之前使用的标准库都是基于寄存器的操作。寄存器版本使用较麻烦,每个设置都要去查看芯片datasheet,好处是可以让你熟悉芯片的寄存器配置。库函数是基于寄存器版本进行二次封装后推出的,它的优势就是寄存器版本的劣势,方便了使用,不再需要手动去配置寄存器,使用更方便了。但是它的劣势就是HAL的优势,就是每次修改MCU功能,都需要手动去修改功能,而且自己修改也不能保证正确性,程序代码在不同MCU之间的移植性不强。

    == HAL库 ==,HAL是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层,HAL库工程一般使用Cube软件来生成工程。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,更方便的实现跨STM32产品的最大可移植性。优势就是不需要开发工程师再关注所用MCU型号,只需要专注所以要的功能软件开发工作。而且是未来主推的方向,正在不断的推出更新。HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。

    区别:
    HAL 库相对标准库更加复杂更加繁琐,但是HAL库能够适应不同的st芯片的应用,所以应用能力更加广泛,但是是直接和硬件联系的,所以比起标准库来说,更难上手。


    串口通信实验包含的文件区别

    标准库:
    在这里插入图片描述
    HAL:
    在这里插入图片描述


    具体代码区别

    主函数:
    标准库:

    #include "led.h"
    #include "delay.h"
    #include "key.h"
    #include "sys.h"
    #include "usart.h"
     int main(void)
     {		
     	u16 t;  
    	u16 len;	
    	u16 times=0;
    	delay_init();	    	 //延时函数初始化	  
    	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    	uart_init(115200);	 //串口初始化为115200
     	LED_Init();			     //LED端口初始化
    	KEY_Init();          //初始化与按键连接的硬件接口
     	while(1)
    	{
    		if(USART_RX_STA&0x8000)
    		{					   
    			len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
    			printf("\r\n您发送的消息为:\r\n\r\n");
    			for(t=0;t<len;t++)
    			{
    				USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
    				while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
    			}
    			printf("\r\n\r\n");//插入换行
    			USART_RX_STA=0;
    		}else
    		{
    			times++;
    			if(times%5000==0)
    			{
    				printf("\r\n精英STM32开发板 串口实验\r\n");
    				printf("正点原子@ALIENTEK\r\n\r\n");
    			}
    			if(times%200==0)printf("请输入数据,以回车键结束\n");  
    			if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
    			delay_ms(10);   
    		}
    	}	 
     }
    
    
    

    HAL库:

    #include "sys.h"
    #include "delay.h"
    #include "usart.h"
    #include "led.h"
    #include "key.h"
    
    int main(void)
    {
    	u8 len;	
    	u16 times=0;
    	
        HAL_Init();                    	 	//初始化HAL库    
        Stm32_Clock_Init(RCC_PLL_MUL9);   	//设置时钟,72M
    	delay_init(72);               		//初始化延时函数
    	uart_init(115200);					//初始化串口
    	LED_Init();							//初始化LED	
    	KEY_Init();							//初始化按键
    	
        while(1)
        {
    			
           if(USART_RX_STA&0x8000)
    		{					   
    			len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
    			printf("\r\n您发送的消息为:\r\n");
    			HAL_UART_Transmit(&UART1_Handler,(uint8_t*)USART_RX_BUF,len,1000);	//发送接收到的数据
    			while(__HAL_UART_GET_FLAG(&UART1_Handler,UART_FLAG_TC)!=SET);		//等待发送结束
    			printf("\r\n\r\n");//插入换行
    			USART_RX_STA=0;
    		}else
    		{
    			times++;
    			if(times%5000==0)
    			{
    				printf("\r\nALIENTEK 精英STM32开发板 串口实验\r\n");
    				printf("正点原子@ALIENTEK\r\n\r\n\r\n");
    			}
    			if(times%200==0)printf("请输入数据,以回车键结束\r\n");  
    			if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
    			delay_ms(10);   
    		} 
        }
    }
    

    总结

    HAL库相对标准库来说,同样的串口通信实验需要更多的文件包含,HAL库更加繁琐复杂,但是相对标准库来说,HAL库的移植性更加强,能够适应更多不同种类的硬件,所以能够一个工程多个硬件使用,所以就能力上,HAL库更加强大。

    展开全文
  • C标准库.pdf

    热门讨论 2012-11-22 12:39:35
    《C标准库》集中讨论了C标准库,全面介绍了ANSI/ISOC语言标准的所有库函数。书中通过引用ISOC标准的相关部分,详细讲解了每一个库函数的使用方法,并通过示例描述了其实现细节,且给出了实现和测试这些函数的完整...
  • STM32CubeIDE移植标准库

    千次阅读 2020-09-08 16:28:45
    本文基于STM32CubeIDE+ 标准库 +STM32F013CBT6,编写demo点亮LED灯。 1、新建工作空间; 2、新建STM32工程 2.1、选择芯片 2.2、建立空文件 3、添加标准库文件 使用到的标准库问价如下: 3.1、...
  • boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的c++程序库,有着“c++‘准’标准库”的美誉。 本书基于boost1.42版,介绍了其中的所有99个库,并且详细深入地讲解了其中数十个库,同时实现了若干颇具...
  • python常用标准库汇总

    千次阅读 2020-10-20 13:56:49
    文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 stringprep:互联网字符串准备工具 readline:GNU按行读取接口 ...collections:
  • STM32中HAL库与标准库的区别

    千次阅读 2021-06-07 09:47:03
    1.HAL库就是封装的比较猛,移植性比较强,标准库就是将寄存器封装好,移植性没有HAL好。 2.HAL库可以用ST的软件CUBE生成初始化工程。3.HAL库最方便的就是可以用CUBEMX自动生成代码,动态的调用资源,不会出现地城...
  • Python标准库之random库

    千次阅读 2019-03-06 23:04:28
    random库是用于产生并运用随机数的标准库,以下整理了9个random库常用随机函数。 按下表中序号的不同颜色区分函数功能:红色序号代表获取随机小数,绿色序号代表获取随机整数,橘色序号代表对序列类型的随机操作。 ...
  • Keil5建立STM32标准库模板

    千次阅读 2021-03-14 16:28:03
    Keil5建立STM32标准库模板标准库模板建立1. 准备工作2. 新建一个工程文件夹3. 使用MDK新建工程4. 复制固件库源码到工程5. 在MDK空工程中添加文件6. 工程配置7. 编译工程 标准库模板建立 环境生明: keil版本:keil...
  • RUST标准库

    千次阅读 2019-02-23 11:28:49
    Rust标准库 std::thread Rust 通过 spawn 函数提供了创建本地操作系统(native OS)线程的机制,该函数的参数是一个转移闭包(moving closure)。 Rust默认会开4个线程,新开的线程另算。 use std::thread; static ...
  • c标准与c标准库

    千次阅读 2019-03-19 23:27:08
    学习c语言过程中必不可少要了解c语言的标准及其发展历史,在介绍它们之间的关系之前,首先介绍以下几个组织: ANSI:美国国国家标准学会(AMERICAN NATIONAL STANDARDS INSTITUTE)成立于1918年。是一个专门制定...
  • C++11标准库(STL)使用总结

    千次阅读 2019-09-06 19:52:01
    包含被C++标准库用来向C++标准库容器分配内存的类和函数。 包含执行由磁盘文件输入和向磁盘文件输出的函数的函数原型。 包含来自C++标准库的 string类的定义。 包含执行由内存字符串输...
  • 最近由于项目需要使用标准库标准库是很刚入门stm32那会学习的东西,忘得一干二净,所以编写一篇文章来记录一下建立工程模板的步骤,以便尽快熟悉标准库的架构和API。 我使用的开发板是正点原子探索者开发板,MCU为...
  • C++标准库chm

    千次下载 热门讨论 2013-08-30 21:00:23
    C++ 标准库 chm版 免费下载,欢迎下载
  • 2014年辛星python标准库整理夏季版

    千次下载 热门讨论 2014-07-23 19:37:02
    2014年辛星python标准库整理第一版,可能不全,求谅解,求支持。
  • c++ std 标准库源码

    热门讨论 2009-11-30 12:32:17
    C++ 基本库 c++ std 标准库 源码 c++ std 标准库 源码
  • 最近笔者开始学习STM32的HAL库,由于以前一直用标准库进行开发,于是发现了HAL库几点好玩的地方,在此分享。 1.句柄 在STM32的标准库中,假设我们要初始化一个外设(这里以USART为例) 我们首先要初始化他们的各个...
  • 上一节课我们学习了如何自定义模块,大家可以定义自己的模块,但是项目中通常不允许我们自己造轮子,所以本节课主要学习Python的标准库,学习使用别人的轮子,由于标准库内容较多,所以我们分开两次课程来学习。...
  • stm32标准库和HAL库的关系

    千次阅读 2020-12-16 21:43:23
    ST先后提供了两套固件库:标准库和HAL库。STM32芯片面市之初只提供了丰富全面的标准库,大大便利了用户程序开发,为广大开发板所推崇,同时也为ST积累了大量标准库的用户。有过STM32基础的同学想必对标准库非常熟悉...
  • STM32标准库和HAL库的区别

    千次阅读 2020-10-26 14:47:55
    大体看了下,标准库移植起来没有HAL库方便。 用HAL库移植起来不需要改动,怪不得ST推HAL库 https://blog.csdn.net/ice_masters/article/details/105644704 ...怪不得这里说没有可移植性,我最开始看到这句的...
  • C++标准库和标准模板库

    千次阅读 多人点赞 2016-04-14 20:42:23
    (2)质量:标准库的都是经过严格测试的,正确性有保证; (3)效率:关于人的效率已经体现在成本中了,关于代码的执行效率要相信实现标准库的大牛们的水平; (4)良好的编程风格:采用行业中普遍的做法进行开发。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,148,940
精华内容 459,576
关键字:

标准库