精华内容
下载资源
问答
  • 2021-05-19 16:22:50

    参考文章

    数据类型一览表

    算数类型(arithmetic type)

    字符类型

    signed char 有符号字符

    unsigned char 无符号字符

    char 字符(可以是 signed char 或 unsigned char,由实现定义)

    // 除此之外,还定义了宽字符(c11):

    1. wchar_t

    2. char16_t

    3. char32_t

    整数类型

    1. 短整形

    short

    signed short

    short int

    signed short int

    // 等价于

    short int

    2. 无符号短整形

    unsigned short

    unsigned short int

    // 等价于

    unsigned short int

    3. 整形

    signed

    int

    signed int

    // 等价于

    int

    4. 无符号整形

    unsigned

    unsigned int

    // 等价于

    unsigned int

    5. 长整型

    long

    long int

    signed long

    signed long int

    // 等价于

    long int

    6. 无符号长整型

    unsigned long

    unsigned long int

    // 等价于

    unsigned long int

    7. long long int(c99,不懂该怎么称呼了...)

    long long

    long long int

    signed long long

    signed long long int

    // 等价于

    long long int

    8. unsigned long long int(c99)

    unsigned long long

    unsigned long long int

    // 等价于

    unsigned long long int

    数据模型

    每种实现对数据类型的大小选择统称为 数据模型,以下四种是大家普遍接受的数据模型:

    32 System

    1. LP32 2/4/4,(int 16bit,long & pointer 32bit)

    1. 仅出现在 win16 API 中

    2. LP32 4/4/4,(int,long,pointer 32bit)

    1. win32 API

    2. 类 unix 系统(linux or mac)

    64 System

    3. LP64 4/4/8,(int & long 32big,pointer 64 bit)

    4. LP64 4/8/8,(int 32 bit,long & pointer 64 bit)

    其他模型非常罕见(几乎可以不用理会,实际就是无需理会)!举一个例子,数据模型 LP64 8/8/8(int & long & pointer 64 bit),这种数据模型只出现在早期的 unix 机器上

    浮点类型

    1. float 单精度浮点型 32bit(4byte)

    2. double 双精度浮点型 64bit(8byte)

    3. long double 扩展精密浮点型(需要机器支持) >=64 bit

    如果使用了 complex.h,表示需要用到复杂的浮点数

    以下写法都是有效的:

    float _complex float complex

    double _complex double complex

    long double _complex long double complex

    float _imaginary float imaginary

    double _imaginary double imaginary

    long double _imaginary long double imaginary

    原子类型(atomic type),限定符

    支持以下三种写法:

    // p 是指向原子 const int 的指针

    _Atomic const int * p1;

    // 同上

    const atomic_int * p2;

    // 同上

    const Atomic(int) * p3;

    原子类型的对象是唯一不受数据竞争的对象,也就是说,它们可以由两个线程并发地修改,或者由另一个线程修改。

    拥有以下四个相关属性:

    1. 写入一致性(write-write-coherence)

    2. 读取一致性(read-read-coherence)

    3. 读写一致性(read-write-coherence)

    4. 写读一致性(write-read-coherence)

    具体解释参考官方文档:atomic type

    目前的 visual studio 中不支持该类型

    由 typedef 引入的说明符

    // 声明 int_t 是 int 的别名

    typedef int int_t

    // 进阶

    // char_t 是 char 的别名

    // chart_p 是 char* 的别名

    // fp 是 char(*)(void) 的别名

    typedef char char_t, *char_p, (*fp)(void)

    修饰符

    const

    // 常量不可改动

    const int a = 10;

    volatile

    // 提醒计算机:

    // a 变量可能会实时更新,不能缓存

    // 这个一般多用在多线程场景下

    volatile int a = 10;

    restrict

    特殊的常量

    INFINITY 无穷

    NaN 非数字

    数值范围

    如果需要准确的了解到数值的范围,请参阅(页面底部):各种类型对应的数值范围

    更多相关内容
  • 语言标准函数库速查

    2018-08-27 15:53:04
    定义浮点型数值四舍五入的方式,-1是不确定,0是向0,1是向最近,2是向正无穷大,3是负无穷大 FLT_RADIX 2 定义指数的基本表示(比如base-2是二进制,base-10是十进制表示法,16是十六进制) FLT_MANT_DIG,...

    功能与pow一致,只是输入与输出皆为浮点数  

    因此请参考 pow....
    -----------------------------------------------
    原型:extern float pow(float x, float y);
      
      用法:#include <math.h>
      
      功能:计算x的y次幂。
      
      说明:x应大于零,返回幂指数的结果。
      
      举例:

          // pow.c
          
          #include <syslib.h>
          #include <math.h>

          main()
          {
            clrscr();        // clear screen
            textmode(0x00);  // 6 lines per LCD screen
          
            printf("4^5=%f",pow(4.,5.));
            
            getchar();
            return 0;
          }

    C语言函数搜索框:

     

    C语言标准头

    <assert.h> 断言

    <ctype.h> 字符类测试

    <errno.h> (部分)库函数抛出的错误代码

    <float.h> 浮点数运算

    <limits.h> 检测整型数据类型值范围

    <locale.h> 本土化

    <math.h> 数学函数

    <setjmp.h> “非局部跳转”

    <signal.h> 信号

    <stdarg.h> 可变参数列表

    <stddef.h> 一些常数,类型和变量

    <stdio.h> 输入和输出

    <stdlib.h> 实用功能

    <string.h> 字符串函数

    <time.h> 时间和日期函数

    <assert.h> 断言

    头文件<assert.h>唯一的目的是提供宏assert的定义。如果断言非真(expression==0),则程序会在标准错误流输出提示信息,并使程序异常中止调用abort() 。
    定义:void assert (int expression);

    //#define NDEBUG
    #include <assert.h>	
    int main(int argc, char* argv[]){
    	int a = 12;
    	int b = 24;
    	assert( a > b );
    	printf("a is larger than b!");
    	return 0;
    }
    

    上面的程序会发现程序中止,printf并未执行,且有这样的输出: main: Assertion `a > b' failed. 原因就是因为a其实小于b,导致断言失败,assert 输出错误信息,并调用abort()中止了程序执行。

    <ctype.h> 字符测试

    <ctype.h> 主要提供两类重要的函数:字符测试函数和字符大小转化函数。提供的函数中都以int类型为参数,并返回一个int类型的值。实参类型应该隐式转换或者显示转换为int类型。

    int isalnum(int c); 判断是否是字母或数字。

    int isalpha(int c); 判断是否是字母。

    int iscntrl(int c); 判断是否是控制字符。

    int isdigit(int c); 判断是否是数字。

    int isgraph(int c); 判断是否是可显示字符。

    int islower(int c); 判断是否是小写字母。

    int isupper(int c); 判断是否是大写字母。

    int isprint(int c); 判断是否是可显示字符。

    int ispunct(int c); 判断是否是标点字符。

    int isspace(int c); 判断是否是空白字符

    int isxdigit(int c); 判断字符是否为16进制。

    int tolower(int c); 转换为小写字母。

    int toupper(int c); 转换为大写字母。

    <errno.h> 错误代码

    error.h 是 C语言 C标准函式库里的头文件,定义了通过错误码来返回错误信息的宏:

    errno 宏定义为一个int型态的左值, 包含任何函数使用errno功能所产生的上一个错误码。

    一些表示错误码,定义为整数值的宏:
    EDOM 源自于函数的参数超出范围,例如 sqrt(-1)
    ERANGE 源自于函数的结果超出范围,例如s trtol("0xfffffffff",NULL,0)
    EILSEQ 源自于不合​​法的字符顺序,例如 wcstombs(str, L"\xffff", 2)

    <float.h> 浮点数运算

    float头文件定义了浮点型数值的最大最小限 浮点型数值以下面的方式定义:符号-value E 指数 符号是正负,value是数字的值 
    下面的值是用#define定义的,这些值是详细的实现,但是可能没有比这里给出的更详细,
    在所有实例里FLT指的是float,DBL是double,LDBL指的是long double

    FLT_ROUNDS
    定义浮点型数值四舍五入的方式,-1是不确定,0是向0,1是向最近,2是向正无穷大,3是负无穷大

    FLT_RADIX 2
    定义指数的基本表示(比如base-2是二进制,base-10是十进制表示法,16是十六进制)

    FLT_MANT_DIG,DBL_MANT_DIG,LDBL_MANT_DIG
    定义数值里数字的个数

    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 ,LDBL_MAX_10_EXP +37 +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
    能表示的最小有符号数

    <limits.h> 取值范围

    CHAR_BIT 一个ASCII字符长度

    SCHAR_MIN 字符型最小值

    SCHAR_MAX 字符型最大值

    UCHAR_MAX 无符号字符型最大值

    CHAR_MIN
    CHAR_MAX 

    char字符的最大最小值,如果char字符正被表示有符号整数。它们的值就跟有符号整数一样。 否则char字符的最小值就是0,最大值就是无符号char字符的最大值。

    MB_LEN_MAX 一个字符所占最大字节数

    SHRT_MIN 最小短整型

    SHRT_MAX 最大短整形

    USHRT_MAX 最大无符号短整型

    INT_MIN 最小整型

    INT_MAX 最大整形

    UINT_MAX 最大无符号整型

    LONG_MIN 最小长整型

    LONG_MAX 最大长整型

    ULONG_MAX 无符号长整型

    <locale.h> 本土化

    国家、文化和语言规则集称为区域设置,<locale.h>头文件中定义了区域设置相关的函数。setlocale函数用于设置或返回当前的区域特性,localeconv用于返回当前区域中的数字和货币信息(保存在struct lconv结构实例中)。setlocale的第一个实参指定要改变的区域行为类别,预定义的setlocale类别有:

    LC_ALL
    全部本地化信息

    LC_COLLATE
    影响strcoll和strxfrm

    LC_CTYPE
    影响字符处理函数和多行字符处理函数

    LC_MONETARY
    影响localeconv返回的货币格式化信息

    LC_NUMERIC
    影响格式化输入输出字符中的小数点符号

    LC_TIME
    影响strftime函数

    <locale.h> 头文件中提供了2个函数 
    setlocale() 设置或恢复本地化信息 
    localeconv() 返回当前地域设置的信息

    setlocale(constant,location) 用法 
    如果这个函数成功执行,将返回当前的场景属性;如果执行失败,将返回False。

    constant 参数 (必要参数。指定设置的场景信息)

    LC_ALL – 所有下属的常量

    LC_COLLATE – 排列顺序

    LC_CTYPE – 字符分类和转换(例如:将所有的字符转换成小写或大写形式)

    LC_MESSAGES – 系统信息格式

    LC_MONETARY – 货币 / 通货格式

    LC_NUMERIC – 数值格式

    LC_TIME – 日期和时间格式

    location (必要参数)

    必要参数。指定需要进行场景信息设置的国家或区域。它可以由一个字符串或一个数组组成。如果本地区域是一个数组,那么setlocale()函数将尝试每 个数组元素直到它从中获取有效的语言和区域代码信息为止。如果一个区域处于不同操作系统中的不同名称下,那么这个参数将非常有用。

    struct lconv *localeconv(void); 用法

    localeconv 返回lconv结构指针 lconv结构介绍: 保存格式化的数值信息,保存数值包括货币和非货币的格式化信息,localeconv返回指向该对象的指针,以下为结构中的成员及信息:

    char *decimal_point; 数字的小数点号

    char *thousands_sep; 数字的千分组分隔符

    每个元素为相应组中的数字位数,索引越高的元素越靠左边。一个值为CHAR_MAX的元素表示没有更多的分组了。一个值为0的元素表示前面的元素能用在靠左边的所有分组中

    char *grouping; 数字分组分隔符

    char *int_curr_symbol; 前面的三个字符ISO 4217中规定的货币符号,第四个字符是分隔符,第五个字符是'\0' */

    char *currency_symbol; 本地货币符号

    char *mon_decimal_point; 货币的小数点号

    char *mon_thousands_sep; 千分组分隔符

    char *mon_grouping; 类似于grouping元素

    char *positive_sign; 正币值的符号

    char *negative_sign; 负币值的符号

    char int_frac_digits; 国际币值的小数部分

    char frac_digits; 本地币值的小数部分

    char p_cs_precedes; 如果currency_symbol放在正币值之前则为1,否则为0

    char p_sep_by_space; 当且仅当currency_symbol与正币值之间用空格分开时为1

    char n_cs_precedes; < 如果currency_symbol放在负币值之前则为1,否则为0/dt>

    char n_sep_by_space; 当且仅当currency_symbol与负币值之间用空格分开时为1

    char p_sign_posn; 格式化选项

    0 - 在数量和货币符号周围的圆括号 
    1 - 数量和货币符号之前的 + 号 
    2 - 数量和货币符号之后的 + 号 
    3 - 货币符号之前的 + 号 
    4 - 货币符号之后的 + 号

    char n_sign_posn 格式化选项

    0 - 在数量和货币符号周围的圆括号 
    1 - 数量和货币符号之前的 - 号 
    2 - 数量和货币符号之后的 - 号 
    3 - 货币符号之前的 - 号 
    4 - 货币符号之后的 - 号

    最后提示:可以使用setlocale(LC_ALL,NULL)函数将场景信息设置为系统默认值。

    <math.h> 数学函数

    <math.h> 是C语言中的数学函数库

    三角函数

    double sin(double x); 正弦

    double cos(double x); 余弦

    double tan(double x); 正切

    *cot三角函数,可以使用tan(PI/2-x)来实现。


    反三角函数

    double asin(double x);结果介于[-PI/2, PI/2] 

    double acos(double x); 结果介于[0, PI] 

    double atan(double x); 
    反正切(主值), 结果介于[-PI/2, PI/2] 

    double atan2(double y,double); 
    反正切(整圆值), 结果介于[-PI, PI]


    双曲三角函数

    double sinh(double x); 计算双曲正弦

    double cosh(double x); 计算双曲余弦

    double tanh(double x); 计算双曲正切


    指数与对数

    double exp(double x); 求取自然数e的幂

    double sqrt(double x); 开平方

    double log(double x); 以e为底的对数

    double log10(double x); 以10为底的对数

    double pow(double x, double y); 
    计算以x为底数的y次幂 

    float powf(float x, float y); 
    与pow一致,输入与输出皆为浮点数


    取整

    double ceil(double); 取上整

    double floor(double); 取下整


    标准化浮点数

    double frexp(double f, int *p); 
    标准化浮点数, f = x * 2^p, 已知f求x, p ( x介于[0.5, 1] ) 

    double ldexp(double x, int p); 
    与frexp相反, 已知x, p求f


    取整与取余

    double modf(double, double*); 
    将参数的整数部分通过指针回传, 返回小数部分 
     

    double fmod(double, double); 
    返回两参数相除的余数

    <setjmp.h> “非局部跳转”

    在该头文件中定义了一种特别的函数调用和函数返回顺序的方式。这种方式不同于以往的函数调用和返回顺序, 
    它允许程序流程立即从一个深层嵌套的函数中返回。
    <setjmp.h> 中定义了两个宏:

    int setjmp(jmp_buf env); /*设置调转点*/ 
    longjmp(jmp_buf jmpb, int retval); /*跳转*/ 

    宏setjmp的功能是将当前程序的状态保存在结构env ,为调用宏longjmp设置一个跳转点。setjmp将当前信息保存在env中供longjmp使用。其中env是jmp_buf结构类型的。 
    Demo :

    #include  <stdio.h>
    #include  <setjmp.h>
    static jmp_buf buf;
    void second(void) {
        printf("second\n");        
    	// 打印
        longjmp(buf,1);            
    	// 跳回setjmp的调用处
    	- 使得setjmp返回值为1
    }
     void first(void) {
        second();
        printf("first\n");          
    	// 不可能执行到此行
    }
     int main() {   
        if ( ! setjmp(buf) ) {
            first();               
    	// 进入此行前,setjmp返回0
        } else {                  
    	// 当longjmp跳转回,
    	setjmp返回1,因此进入此行
            printf("main\n");  
    		// 打印
        }
         return 0;
    }
    

    直接调用setjmp时,返回值为0,这一般用于初始化(设置跳转点时)。以后再调用longjmp宏时用env变量进行跳转。程序会自动跳转到setjmp宏的返回语句处,此时setjmp的返回值为非0,由longjmp的第二个参数指定。 
    一般地,宏setjmp和longjmp是成对使用的,这样程序流程可以从一个深层嵌套的函数中返回。

    <signal.h> 信号

    在signal.h头文件中,提供了一些函数用以处理执行过程中所产生的信号。

    宏:

    SIG_DFL

    SIG_ERR

    SIG_IGN

    SIGABRT

    SIGFPE

    SIGILL

    SIGINT

    SIGSEGV

    SIGTERM

    函数:

    signal();

    raise();

    变量:

    typedef sig_atomic_t

    sig_atomic_t 类型是int类型,用于接收signal函数的返回值。

    以SIG_开头的宏用于定义信号处理函数

    SIG_DFL 默认信号处理函数。

    SIG_ERR 表示一个错误信号,当signal函数调用失败时的返回值。

    SIG_IGN 信号处理函数,表示忽略该信号。

    SIG开头的宏是用来在下列情况下,用来表示一个信号代码:

    SIGABRT 异常终止(abort函数产生)。

    SIGFPE 浮点错误(0作为除数产生的错误,非法的操作)。

    SIGILL 非法操作(指令)。

    SIGINT 交互式操作产生的信号(如CTRL - C)。

    SIGSEGV 无效访问存储(片段的非法访问,内存非法访问)。

    SIGTERM 终止请求。

    signal 函数

    void(*signal(int sig,void (*func)(int)))(int);

    上面的函数定义中,sig 表示一个信号代码(相当于暗号类别),即是上面所定义的SIG开头的宏。当有信号出现(即当收到暗号)的时候,参数func所定义的函数就会被调用。如果func等于SIG_DFL,则表示调用默认的处理函数。如果等于SIG_IGN,则表示这个信号被忽略(不做处理)。如果func是用户自定义的函数,则会先调用默认的处理函数,再调用用户自己定义的函数。 自定义函数,有一个参数,参数类型为int,用来表示信号代码(暗号类别)。同时,函数必须以return、abort、exit 或 longjump等语句结束。当自定义函数运行结束,程序会继续从被终止的地方继续运行。(除非信号是SIGFPE导致结果未定义,则可能无法继续运行)

    如果调用signal函数成功,则会返回一个指针,该指针指向为所指定的信号类别的所预先定义的信号处理器。 
    如果调用失败,则会返回一个SIG_ERR,同时errno的值也会被相应的改变。

    raise 函数

    int raise(int sig);

    发出一个信号sig。信号参数为SIG开头的宏。

    如果调用成功,返回0。否则返回一个非零值。

    <stdarg.h> 可变参数

    <stdarg.h> 头文件定义了一些宏,当函数参数未知时去获取函数的参数

    变量:typedef va_list


    宏:

    • va_start()
    • va_arg()
    • va_end()


    变量和定义
    va_list类型通过stdarg宏定义来访问一个函数的参数表,参数列表的末尾会用省略号省略 

    声明:void va_start(va_list ap, last_arg);
    用va_arg和va_end宏初始化参数ap,last_arg是传给函数的固定参数的最后一个,省略号之前的那个参数 注意va_start必须在使用va_arg和va_end之前调用

    声明:type va_arg(va_list ap, type);
    用type类型扩展到参数表的下个参数
    注意ap必须用va_start初始化,如果没有下一个参数,结果会是undefined

    声明:void va_end(va_list ap); 允许一个有参数表(使用va_start宏)的函数返回,如果返回之前没有调用va_end,结果会是undefined。参数变量列表可能不再使用(在没调用va_start的情况下调用va_end)

    <stddef.h> 一些常数,类型和变量

    <stddef.h> 头文件定义了一些标准定义,许多定义也会出现在其他的头文件里

    宏命令:NULL 和 offsetof() 

    变量:
    typedef ptrdiff_t
    typedef size_t
    typedef wchar_t

    变量和定义:
    ptrdiff_t是两个指针相减的结果
    size_t是sizeof一个关键词得到的无符号整数值
    wchar_t是一个宽字符常量的大小,是整数类型
    NULL是空指针的常量值

    offsetof(type, member-designator);这个宏返回一个结构体成员相对于结构体起始地址的偏移量(字节为单位),type是结构体的名字,member-designator是结构体成员的名字。

    原文转自:http://program.upc.edu.cn/CHelp/powf.htm

    展开全文
  • C语言常见头文件汇总

    万次阅读 多人点赞 2020-05-12 23:45:54
    isinf 是无穷大(宏/功能) isnan 不是数字(宏/函数) isnormal 正常(宏/功能) signbit 符号位(宏/功能) 比较宏/功能: isgreater 更大(宏) isgreaterequal 大于或等于(宏) isless 少(宏) islessequal ...

    目录:

    C library:

    1. (assert.h) 2. (ctype.h) 3. (errno.h) 4. (fenv.h) 5. (float.h) 6.(inttypes.h) 7. (iso646.h) 8.(limits.h)
      9. (locale.h) 10. (math.h) 11. (setjmp.h) 12. (signal.h) 13. (stdarg.h) 14. (stdbool.h) 15.(stddef.h) 16. (stdint.h) 17.(stdio.h) 18. (stdlib.h) 19. (string.h) 20. (tgmath.h)21. (time.h) 22. (uchar.h) 23.(wchar.h) 24. (wctype.h)

    1.(assert.h)

    assert.h 定义一个可用作标准调试工具的宏函数:
    assert      宏功能    评估断言(宏)
    

    2. (ctype.h)

    字符处理功能
    该标头声明了一组用于分类和转换单个字符的函数。
    功能:
    这些函数的INT等效一个字符作为参数并返回一个INT,它们可以是另一个字符或表示布尔值的值:一个INT的值0手段假,以及INT从值不同0表示真。
    (1)字符分类功能:
    他们检查作为参数传递的字符是否属于某个类别:
    isalnum  
       检查字符是否为字母数字(函数)
    isalpha
       检查字符是否为字母(函数)
    isblank 
       检查字符是否为空白(功能)
    iscntrl
       检查字符是否为控制字符(功能)
    isdigit
       检查字符是否为十进制数字(功能)
    isgraph
       检查字符是否具有图形表示(功能)
    islower
       检查字符是否为小写字母(功能)
    isprint
       检查字符是否可打印(功能)
    ispunct
       检查字符是否为标点符号(函数)
    isspace
       检查字符是否为空格(功能)
    isupper
       检查字符是否为大写字母(功能)
    isxdigit
       检查字符是否为十六进制数字(函数)
    (2)字符转换功能:
    在字母大小写之间转换的两个函数:
    tolower
       将大写字母转换为小写字母(函数)
    toupper
       将小写字母转换为大写字母(函数)
    

    3.(errno.h)

    C错误
    定义以下宏的C标头:
    errno:    上一个错误编号(宏)
    加上至少三个其他宏常量: 益登, 范围 和 序列号
    

    4.(fenv.h)

    浮点环境
        该标头声明一组函数和宏以及特定类型,以访问浮点环境。
        在浮点环境维持一系列状态标志和具体的控制模式。关于浮点环境的具体内容取决于实现,但是状态标志通常包括浮点异常及其相关信息,并且控制模式至少包括舍入方向。
    功能:
    (1)浮点异常:
    feclearexcept
       清除浮点异常(函数)
    feraiseexcept
       引发浮点异常(函数)
    fegetexceptflag
       获取浮点异常标志(函数)
    fesetexceptflag
       设置浮点异常标志(函数)
    (2)取整方向:
    fegetround
       获取舍入方向模式(功能)
    fesetround
       设置舍入方向模式(功能)
    (3)整个环境:
    fegetenv
       获取浮点环境(函数)
    fesetenv
       设置浮点环境(函数)
    feholdexcept
       保留浮点异常(函数)
    feupdateenv
       更新浮点环境(函数)
    (4)其他:
    fetestexcept
        测试浮点异常(功能)
    (5)种类:
    fenv_t
       浮点环境类型(type)
    fexcept_t
       浮点异常类型(type)
    (6)宏常量:
    <1>浮点异常
    FE_DIVBYZERO
       磁极错误异常(宏)
    FE_INEXACT
       不精确的结果异常(宏)
    FE_INVALID
       无效的参数异常(宏)
    FE_OVERFLOW
       溢出范围错误异常(宏)
    FE_UNDERFLOW
       下溢范围错误异常(宏)
    FE_ALL_EXCEPT
       所有例外(宏)
    <2>取整方向
    FE_DOWNWARD
    	向下舍入方向模式(宏)
    FE_TONEAREST
    	最接近的舍入方向模式(宏)
    FE_TOWARDZERO
    	向零舍入方向模式(宏)
    FE_UPWARD
    	向上舍入方向模式(宏)
    <3>整个环境
    FE_DFL_ENV
    	默认环境(宏)
    <4>pragma
    FENV_ACCESS
    	进入浮点环境(pragma)	
    

    5.(float.h)

    浮点类型的特征
    此标头描述了特定系统和所使用的编译器实现的浮点类型的特征。
    
    浮点数由四个元素组成:
    信号:负号或非负号
    一个基数(或基数):表示可以用一位数字表示的不同数字(二进制​​为2,十进制为10,十六进制为16,依此类推...)
    有效数字(或尾数):这是上述基数的一系列数字。该系列中的位数是所谓的精度。
    指数(也称为特征或小数位数):代表有效位数的偏移量,以下列方式影响该值:
    浮点的值 = 有效位数x 基本指数及其对应的符号。
    	宏常量
    以下面板显示了此标头中定义的不同值的名称以及所有实现的最小值或最大值(每个实现可以将这些值设置为大于或小于指定的此最小值或最大值):
    当一组宏时存在前缀FLT_, DBL_ 和 LDBL_,以 FLT_适用于该float类型,DBL_到double和一个LDBL_到long double。
        兼容性
    FLT_EVAL_METHOD 和 DECIMAL_DIG 为符合1999年或以后的C标准(自2011年以来仅包括C ++标准:C ++ 11)的库定义。
    

    在这里插入图片描述

    6.(inttypes.h)

    C整数类型
    具有支持基于宽度的整数类型的库的标头。
    包括此标头会自动包括<cstdint>(定义基于宽度的整数类型)。
    
    巨集

    以下宏扩展为包含 打印 要么 扫描说明符,适用于基于特定宽度的整数类型:

    在这里插入图片描述

    功能

    此标头还声明了以下函数,这些函数将 cstdlib和 cwchar 对于 intmax_t:
    在这里插入图片描述

    种类

    imaxdiv_t
    类型返回 imaxdiv, 哪一个是 div_t 等价于 intmax_t。

    7.(iso646.h)

    ISO 646替代运算符
    此标头为ISO646标准字符集不支持的C ++运算符定义了11个宏常量以及其他拼写形式:
    

    在这里插入图片描述
    在C ++中,保留字与这些宏具有相同的名称,并被视为其各自运算符的别名。因此,包含此标头在C ++中无效,并且对于使用备用名称也没有必要。

    8.(limits.h)

    整数类型的大小
    该头文件定义了常量,并限制了所使用的特定系统和编译器实现的基本整数类型。
    
    基本浮点类型的限制在<cfloat>(<float.h>)中定义。
    特定于宽度的整数类型和其他typedef类型的限制在<cstdint>(<stdint.h>)中定义。
    
    宏常量

    在这里插入图片描述
    兼容性
    LLONG_MIN, LLONG_MAX 和 ULLONG_MAX 为符合1999年或以后的C标准(自2011年以来仅包括C ++标准:C ++ 11)的库定义。

    9.(locale.h)

    C本地化库
    C语言支持特定于本地化的设置,例如特定于区域性的日期格式或特定于国家/地区的货币符号。
    
    每个系统和特定的编译器实现都可以提供不同的语言环境选择(使用setlocale函数),但是对于任何C程序,至少有两个语言环境可供选择:
    该"C"区域是最小的区域。这是一个相当中性的语言环境,在所有系统和编译器中都具有相同的设置,因此使用此语言环境的程序的确切结果是可以预测的。这是所有C程序默认使用的语言环境。
    系统的默认语言环境(由空的C字符串指定:“”)。它是应用程序运行环境所提供的语言环境配置。通常,它包含比“ C”语言环境更多的本地化信息。
    
    此标头声明结构 列夫 和功能 setlocale 和 语言环境,以及要与之配合使用的几个宏。这些用于定义特定于语言环境的信息。
    
    请注意,语言环境配置会影响标准C库中许多功能的行为:
    在<cstring>(<string.h>)中,函数Strcoll 和 strxfrm 受角色转换规则的影响。
    在<cctype>(<ctype.h>)中,除等轴 和 isxdigit 受所选扩展字符集的影响。
    在<cstdio>(<stdio.h>)中,格式化的输入/输出操作受数字格式设置中的字符转换规则和小数点字符集影响。
    在<ctime>(<time.h>)中,函数strftime 受时间格式设置的影响。
    在此标头中,它影响其函数返回的值 setlocale 和 语言环境。
    
    还向程序提供了一些语言环境信息,以便以对语言环境敏感的方式更好地呈现其输出(语言环境)。
        种类
       struct lconv
          数值格式信息(类型)
        功能   
       setlocale
    	 设置或检索语言环境(函数)
    localeconv
    	 获取数量的区域设置格式参数(函数)
    

    10.(math.h)

    C数字库
    标头<cmath>声明了一组函数来计算常见的数学运算和转换:
        功能:
        三角函数
        cos          计算余弦(函数)
        sin          计算正弦(函数)
        tan          计算切线(函数)
        acos         计算反余弦(函数)
        asin         计算反正弦(函数)
        atan         计算反正切(函数)
        atan2        用两个参数计算反正切(函数)
        双曲函数
        cosh         计算双曲余弦(函数)
        sinh         计算双曲正弦(函数)
        tanh		 计算双曲正切(函数)
        acosh		 计算面积双曲余弦(函数)
        asinh		 计算面积双曲正弦(函数)
        atanh        计算区域双曲正切(函数)
        指数和对数函数
        exp			 计算指数函数(function)
        frexp        获取有效和指数(函数)
        ldexp        从有效数和指数(函数)生成值
        log          计算自然对数(函数)
        log10        计算常用对数(函数)
        modf         分为小数和整数部分(函数)
        exp2         计算二进制指数函数(function)
        expm1        计算指数减一(函数)
        ilogb        整数二进制对数(函数)
        log1p        计算对数加一(函数)
        log2         计算二进制对数(函数)
        logb         计算浮点基数对数(函数)
        scalbn       使用浮点基指数来缩放有效位数(函数)
        scalbln      使用浮点基指数(long)缩放有效位数(函数)
        power功能:
        pow          提升功率(功能)
        sqrt		 计算平方根(函数)
        cbrt		 计算立方根(函数)
        hypot        计算斜边(函数)
        误差和伽玛函数:
        erf          计算误差函数(function)
        erfc         计算互补误差函数(function)
        tgamma       计算伽玛函数(function)
        lgamma       计算对数伽马函数(function)
        舍入和余数函数:
        ceil         舍入值(函数)
        floor		 舍入值(函数)
        fmod         计算除法的余数(函数)
        trunc        截断值(函数)
        round 		 舍入到最接近(函数)
        lround       四舍五入到最接近的整数并转换为长整数(函数)
        llround      四舍五入到最接近的整数并转换为长整型(函数)
        rint         四舍五入到整数值(函数)
        lrint        舍入并转换为长整数(函数)
        llrint       舍入并转换为long long整数(函数)
        nearbyint    四舍五入到附近的整数值(函数)
        remainder    计算余数(IEC 60559)(功能)
        remquo       计算余数和商(函数)
        浮点运算功能:
        copysign     复制标志(功能)
        nan          生成安静的NaN (函数)
        nextafter    下一个可表示的值(函数)
        nexttoward   下一个可表示的值朝向精确值(函数)
        最小,最大,差函数:
        fdim         正差(函数)
        fmax         最大值(函数)
        fmin         最小值(函数)
        其他功能:
        fabs         计算绝对值(函数)
        abs          计算绝对值(函数)
        fma          乘加(函数)
            宏/函数:
             这些在C中作为宏实现,在C ++中作为函数实现:
    分类宏/功能:
        fpclassify   分类浮点值(宏/函数)
        isfinite     是有限值(宏)
        isinf        是无穷大(宏/功能)
        isnan        不是数字(宏/函数)
        isnormal     正常(宏/功能)
        signbit      符号位(宏/功能)
    比较宏/功能:
        isgreater    更大(宏)
        isgreaterequal  大于或等于(宏)
        isless       少(宏)
        islessequal  小于或等于(宏)
        islessgreater   小于或大于(宏)
        isunordered  无序(宏)
        宏常量:
        math_errhandling 错误处理(宏)
        INFINITY     无限(常数)
        NAN          非数字(常量)
        HUGE_VAL     巨大的价值(不变)
        HUGE_VALF    巨大的浮动价值
        HUGE_VALL    巨大的双精度值(常量)
        
    

    此标头还定义了以下宏常量(自C99 / C ++ 11起):
    在这里插入图片描述
    种类

    double_t     浮点类型(type)
    float_t      浮点类型(type)
    

    11.(setjmp.h)

    非本地跳
    通过此头文件提供的工具,程序员可以通过提供保留跳转环境的方法来跳过正常的函数调用并返回规则。
    
    标头提供一个函数,具有函数形式和特定类型的宏:
          功能:
    longjmp     跳远(功能)
          宏功能:
    setjmp      保存呼叫环境以进行跳远(宏)
          种类:
    jmp_buf     键入以保留信息以恢复调用环境()
    
    

    12.(signal.h)

    C库处理信号
    一些正在运行的环境使用信号来通知正在运行的进程某些事件。这些事件可能与程序代码执行的错误(例如错误的算术运算)或异常情况(例如请求中断程序)有关。
    
    信号通常表示程序已被要求终止或发生了不可恢复的错误的情况,因此处理信号可以执行终止前的清除操作或尝试以某种方式从错误中恢复。
    
    在标准C库中设计的情况下,并非所有运行环境都需要生成自动信号,并且某些其他环境不仅会生成这些信号,还会生成更多特定的信号。但无论如何,所有通过调用函数raise显式生成的信号都将传递到其相应的信号处理程序。
        功能:
        signal     将功能设置为处理信号(功能)
        raise      产生信号(函数)
        种类:
    sig_atomic_t   整体式(type)
        宏常量:
    

    在这里插入图片描述

    13.(stdarg.h)

    可变参数处理
    该标头定义了宏,以访问未命名参数列表中的各个参数,这些参数的编号和类型对于调用的函数是未知的。
    
    一个函数可以通过在其常规命名参数后加逗号和三个点(,...)来接受数量不等的附加参数而无需相应的参数声明:
    
    return_type function_name(parameter_declarations,...);
    要访问这些附加参数,可以使用在此标头中声明的宏va_start,va_arg和va_end:
    <1>首先,va_start将变量参数列表初始化为va_list。
    <2>随后执行va_arg会产生附加参数的值,其顺序与传递给函数的顺序相同。
    <3>最后,va_end必须在函数返回之前执行。
       种类:
    va_list     键入以保存有关变量参数的信息()
       宏功能:
    va_start    初始化变量参数列表(宏)
    va_arg      检索下一个参数(宏)
    va_end      结束使用变量参数列表(宏)
    va_copy     复制变量参数列表(宏)
    

    14.(stdbool.h)

    布尔型
    此标头在C中的目的是添加布尔类型以及true和false值作为宏定义。
    
    在直接支持这些类型的C ++中,标头仅包含一个宏,可用于检查是否支持该类型:
      宏常量:
    

    在这里插入图片描述

    15.(stddef.h)

    C标准定义
    该头定义了某些类型的语言隐式生成或使用的几种类型。
    种类:
    ptrdiff_t       指针减法的结果(类型)
    size_t          无符号整数类型(type)
    max_align_t     标量对齐最宽的类型()
    nullptr_t       空指针类型(C ++)(类型)
      在C中,此标头还包括wchar_t类型(宽字符类型)的声明,在C ++中,该声明是一种语言关键字,用于标识不同的基本类型(C ++中不需要标头)。
      宏功能:
    offsetof        返回成员的偏移量(宏)
      宏常量:
    NULL            空指针(宏)
    

    16.(stdint.h)

    整数类型
    该标头定义了一组具有特定宽度要求的整数类型别名,以及指定其限制的宏和用于创建这些类型的值的宏函数。
    
     种类:
    以下是基本整数类型或扩展整数类型的 typedef 。
    

    在这里插入图片描述
    其中一些typedef可能表示相同的类型。因此,函数重载不应依赖于它们的不同。

    *请注意,某些类型是可选的(因此,不保证可移植性)。特定的库实现也可以使用其系统支持的其他宽度来定义其他类型。无论如何,如果定义了签名版本或未签名版本,则将同时定义签名和未签名版本。

    巨集

    (1)cstdint类型限制
    在这里插入图片描述
    其中N是8、16、32、64之一,或库支持的任何其他类型宽度。
    仅定义与库支持的类型相对应的宏。

    (2)其他类型的限制
    其他标准整数类型的限制:
    在这里插入图片描述
    (3)类似函数的宏
    这些类似于函数的宏扩展为整数常量,适用于初始化上述类型的对象:
    在这里插入图片描述
    例如:
    INTMAX_C(2012) // expands to 2012LL or similar

    17.(stdio.h)

    C库执行输入/输出操作
    输入和输出操作也可以在下,用来执行++ Ç 圣 ANDAR d 我 NPUT和ö安输出库(cstdio,被称为stdio.h中在C语言)。该库使用所谓的流与物理设备(例如键盘,打印机,终端或系统支持的任何其他类型的文件)一起操作。流是一种以统一方式与之交互的抽象。所有流都具有相似的属性,而与它们所关联的物理介质的各个特征无关。
    
    流在cstdio库中作为指向FILE的指针处理对象。指向FILE对象的指针唯一地标识一个流,并在涉及该流的操作中用作参数。
    
    还存在三个标准流:stdin,stdout和stderr,它们是使用该库为所有程序自动创建和打开的。
    
    (1)流属性:
    流具有一些属性,这些属性定义可以在它们上使用哪些函数以及这些函数如何处理通过它们输入或输出的数据。其中的大多数属性是在使用fopen函数将流与文件(打开的文件)关联时定义的:
    
    读/写访问
        指定流对它们关联的物理介质是否具有读或写访问权限(或两者都有)。
    文字/二进制
        文本流被认为代表一组文本行,每个文本行以换行符结束。根据运行应用程序的环境,文本流可能会发生某些字符转换,以使某些特殊字符适应环境的文本文件规范。另一方面,二进制流是在不进行翻译的情况下从物理介质写入或读取的字符序列,与读取或写入该流的字符一一对应。
    缓冲
        缓冲区是一个内存块,在对数据进行物理读取或写入关联文件或设备之前,先在其中累积数据。流可以完全缓冲,行缓冲或不缓冲。在完全缓冲的流上,当缓冲区已满时,将读取/写入数据;在行缓冲的流上,当遇到换行符时会发生这种情况;而在非缓冲流上,则应尽快读取/写入数据。
    取向
        打开时,流没有方向。对它们执行输入/输出操作后,它们将变为面向字节的或面向宽的,这取决于所执行的操作(通常,<cstdio>中定义的功能是面向字节的,而<cwchar>中的功能是面向字节的)面向广泛)。有关更多信息,请参见cwchar。
    (2)指标:
    流具有某些内部指示器,这些指示器指定其当前状态并影响对其执行的某些输入和输出操作的行为:
    错误指示
          当与流有关的操作中发生错误时,设置此指示器。可以使用ferror函数检查该指示器,并且可以通过调用clearerr,freopen或rewind来重置该指示器。
    文件结束指示符
          设置时,指示对流执行的最后读取或写入操作已到达文件末尾。可以使用feof函数进行检查,也可以通过调用clearerr或freopen或通过调用任何重新定位函数(rewind,fseek和fsetpos)将其重置。
    位置指示器
          它是每个流的内部指针,指向下一个I / O操作中要读取或写入的下一个字符。它的值可以通过ftell和fgetpos函数获得,并且可以使用重定位函数rewind,fseek和fsetpos进行更改。
          功能:
       <1> 文件操作:
    remove          删除文件(功能)
    rename          重命名文件(功能)
    tmpfile         打开一个临时文件(函数)
    tmpnam          生成临时文件名(函数)
       <2>档案存取:
    fclose          关闭文件(功能)
    fflush          冲洗流(功能)
    fopen           打开文件(功能)
    freopen         重新打开具有不同文件或模式(功能)的流
    Setbuf          设置流缓冲区(函数)
    setvbuf         更改流缓冲(功能)
    <3>格式化的输入/输出:
    fprintf         将格式化的数据写入流(函数)
    fscanf          从流中读取格式化的数据(函数)
    printf          将格式化的数据打印到标准输出(功能)
    scanf           从stdin读取格式化的数据(函数)
    snprintf        将格式化的输出写到大小缓冲区(函数)
    sprintf         将格式化的数据写入字符串(函数)
    sscanf          从字符串读取格式化的数据(函数)
    vfprintf        将可变参数列表中的格式化数据写入流(函数)
    vfscanf         将流中的格式化数据读取到变量参数列表(函数)中
    vprintf         将格式化的数据从变量参数列表打印到stdout (函数)
    vscanf          将格式化的数据读入变量参数列表(函数)
    vsnprintf       将格式化的数据从变量参数列表写入大小已设置的缓冲区(函数)
    vsprintf        将变量参数列表中的格式化数据写入字符串(函数)
    vsscanf         将格式化的数据从字符串读入变量参数列表(函数)
    <4>字符输入/输出:
    fgetc           从流中获取字符(函数)
    fgets           从流中获取字符串(函数)
    fputc           将字符写入流(函数)
    fputs           将字符串写入流(函数)
    getc            从流中获取字符(函数)
    getchar         从stdin获取字符(函数)
    gets            从stdin获取字符串(函数)
    putc            将字符写入流(函数)
    Putchar         将字符写入标准输出(函数)
    puts            将字符串写入stdout (函数)
    ungetc          从流中取消字符(功能)
    <5>直接输入/输出:
    fread           从流中读取数据块(函数)
    fwrite          将数据块写入流(函数)
    <6>文件位置:
    fgetpos         获取流中的当前位置(函数)
    fseek           重新定位流位置指示器(功能)
    fsetpos         设置流的位置指示器(功能)
    ftell           获取流中的当前位置(函数)
    rewind          将流的位置设置为开头(函数)
    <7>错误处理:
    clearerr        清除错误指示灯(功能)
    feof            检查文件结束指示器(功能)
    ferror			检查错误指示灯(功能)
    perror			打印错误信息(功能)
          巨集:
    BUFSIZ          缓冲区大小(恒定)
    EOF    			文件结束(常量)
    FILENAME_MAX    文件名的最大长度(常量)
    FOPEN_MAX       同时开放流的潜在限制(恒定)
    L_tmpnam        临时文件名的最小长度(常量)
    NULL     		空指针(宏)
    TMP_MAX         临时文件数(常量)
    此外:_IOFBF,_IOLBF,_IONBF(使用setvbuf用来)
    和SEEK_CUR,SEEK_END和SEEK_SET(与用于FSEEK)。
          种类:
    FILE            包含控制流的信息的对象(类型)
    fpos_t          包含指定文件中位置的信息的对象(类型)
    size_t          无符号整数类型(type)
    

    18.(stdlib.h)

    C标准通用工具库
    该头定义了几个通用功能,包括动态内存管理,随机数生成,与环境的通信,整数算术,搜索,排序和转换。
          功能:
    (1)字符串转换:
    atof          将字符串转换为双精度(function)
    atoi          将字符串转换为整数(函数)
    Atol		  将字符串转换为长整数(函数)
    atoll         将字符串转换为long long整数(函数)
    strtod		  将字符串转换为双精度(function)
    strtof 		  将字符串转换为浮点数(函数)
    strtol        将字符串转换为长整数(函数)
    strtold       将字符串转换为long double (function)
    Strtoll       将字符串转换为long long整数(函数)
    strtoul       将字符串转换为无符号长整数(函数)
    strtoull      将字符串转换为无符号long long整数(函数)
    (2)伪随机序列生成:
    rand          生成随机数(函数)
    srand		  初始化随机数生成器(函数)
    (3)动态内存管理:
    calloc        分配和零初始化数组(函数)
    free          取消分配内存块(函数)
    malloc        分配存储块(功能)
    realloc       重新分配内存块(函数)
    (4)环境:
    abort         中止当前过程(功能)
    atexit        设置要在退出时执行的功能(功能)
    at_quick_exit 设置要在快速退出时执行的功能(功能)
    exit  		  终止调用过程(函数)
    getenv        获取环境字符串(函数)
    quick_exit    快速终止呼叫过程(功能)
    system        执行系统命令(功能)
    _Exit         终止调用过程(函数)
    (5)搜索和排序:
    bsearch       数组中的二进制搜索(函数)
    qsort         对数组的元素进行排序(函数)
    (6)整数算术:
    abs           绝对值(函数)
    div           积分除法(功能)
    labs          绝对值(函数)
    ldiv          积分除法(功能)
    llabs         绝对值(函数)
    lldiv         积分除法(功能)
    (7)多字节字符:
    mblen         获取多字节字符的长度(函数)
    mbtowc        将多字节序列转换为宽字符(函数)
    wctomb        将宽字符转换为多字节序列(函数)
    (8)多字节字符串:
    mbstowcs	  将多字节字符串转换为宽字符字符串(函数)
    wcstombs      将宽字符字符串转换为多字节字符串(函数)
    
        宏常量:
    EXIT_FAILURE  故障终止代码(宏)
    EXIT_SUCCESS  成功终止代码(宏)
    MB_CUR_MAX    多字节字符的最大大小(宏)
    NULL		  空指针(宏)
    RAND_MAX      rand返回的最大值(宏)
        种类:
    div_t		  div返回的结构(类型)
    ldiv_t		  ldiv返回的结构(类型)
    lldiv_t 	  lldiv返回的结构(类型)
    size_t		  无符号整数类型(type)
    

    19.(string.h)

    C字符串
    该头文件定义了几个函数来操纵C字符串和数组。
            功能:
    (1)复制中:
     Memcpy		  复制内存块(功能)
    memmove       移动内存块(功能)
    strcpy		  复制字符串(函数)
    strncpy       复制字符串中的字符(函数)
    (2)串联:
    strcat        连接字符串(函数)
    Strncat		  附加字符串中的字符(功能)
    (3)比较:
    memcmp		  比较两个内存块(函数)
    strcmp        比较两个字符串(函数)
    Strcoll		  使用语言环境比较两个字符串(函数)
    strncmp		  比较两个字符串的字符(函数)
    strxfrm		  使用语言环境转换字符串(函数
    (4)搜索:
    memchr		  在内存块中找到字符(功能)
    strchr		  找到字符串中第一个出现的字符(函数)
    strcspn		  获取跨度直到字符串中的字符(函数)
    strpbrk		  找到字符串中的字符(函数)
    strrchr		  找到字符串中最后一次出现的字符(函数)
    strspn		  获取字符串中字符集的范围(函数)
    strstr        找到子字符串(函数)
    strtok        将字符串拆分为标记(函数)
    
    其他:
    memset		  填充内存块(功能)
    strerror      获取错误消息字符串的指针(函数)
    strlen        获取字符串长度(函数)
        巨集:
    NULL          空指针(宏)
       种类:
    size_t        无符号整数类型(type)
    

    20.(tgmath.h)

    此标头定义了与中的函数相对应的宏函数<math.h>,但可以将其他非浮点类型用作参数:该
    
    函数中的每个函数<math.h>至少应将一个double作为参数(模组)被定义<tgmath.h>为具有相同语义但使用通用参数的宏:而是
    
    为这些通用参数提供的每个整数类型的参数都强制转换为double;的参数浮点类型而没有转化中使用(如直接float,double或long double)。
    
    此标头会自动包含<math.h>和<complex.h>:如果类型通用函数存在于该函数中(带有字符前缀),则该类型泛型函数也可以采用复杂值。<complex.h>"c"
    

    21.(time.h)

    C时间库
    该头文件包含用于获取和操作日期和时间信息的函数的定义。
         功能:
    (1)时间操纵:
    clock           时钟程序(功能)
    difftime		两次返回差(函数)
    mktime 			将tm结构转换为time_t (函数)
    time			获取当前时间(函数)
    (2)转换次数:
    asctime         将tm结构转换为字符串(函数)
    ctime			将time_t值转换为字符串(函数)
    gmtime			将time_t转换为tm作为UTC时间(函数)
    localtime       将time_t转换为本地时间(函数)
    strftime		将时间格式化为字符串(函数)
        宏常量:
    CLOCKS_PER_SEC  每秒时钟滴答声(宏)
    NULL            空指针(宏)
        :类型
    clock_t			时钟类型(type)
    size_t			无符号整数类型(type)
    time_t			时间类型(type)
    struct tm		时间结构(类型)
    

    22.(uchar.h)

    Unicode字符
    此标头提供对16位和32位字符的支持,适合使用UTF-16和UTF-32进行编码。
    
          种类:
    在C中,此标头定义两个宏:char16_t和char32_t,它们映射到适当大小的无符号整数类型(分别与uint_least16_t和uint_least32_t相同)。
    
    在C ++中,char16_t和char32_t是基本类型(因此,此标头未在C ++中定义此类宏)。
         功能
    c16rtomb		将16位字符转换为多字节序列(函数)
    c32rtomb		将32位字符转换为多字节序列(函数)
    mbrtoc16		将多字节序列转换为16位字符(函数)
    mbrtoc32		将多字节序列转换为32位字符(函数)
    兼容性
    此标头由扩展C99的技术报告首次在C中引入,并得到最新的C和C ++标准(均于2011年发布)完全支持。
          巨集:
    在C ++中,此标头定义了以下宏:
    

    在这里插入图片描述

    23.(wchar.h)

    宽字符
    该头文件定义了几个用于C宽字符串的函数。
        功能:
    (1)输入/输出:(大多数为<cstdio>函数的宽版本)
    fgetwc		从流中获取宽字符(函数)
    get			从流中获取宽字符串(函数)
    fputwc		将宽字符写入流(函数)
    fwide		将宽字符串写入流(函数)
    fwide       流方向(功能)
    fwprintf    将格式化的数据写入流(函数)
    fwscanf     从流中读取格式化的数据(函数)
    getwc       从流中获取宽字符(函数)
    getwchar	从stdin获取宽字符(函数)
    putwc		将宽字符写入流(函数)
    putwchar	将宽字符写入标准输出(函数)
    swprintf	将格式化的数据写入宽字符串(函数)
    swscanf		从字符串读取格式化的数据(函数)
    ungetwc		从流中删除宽字符(功能)
    vfwprintf	将可变参数列表中的格式化数据写入流(函数)
    vfwscanf 	将流中的格式化数据读取到变量参数列表(函数)中
    vswprintf 	将格式化的数据从变量参数列表写入大小已设置的缓冲区(函数)
    vswscanf	将宽字符串中的格式化数据读入变量参数列表(函数)
    vwprintf	将格式化的数据从变量参数列表打印到stdout (函数)
    vwscanf		将格式化的数据读入变量参数列表(函数)
    wprintf		将格式化的数据打印到标准输出(功能)
    wscanf		从stdin读取格式化的数据(函数)
    (2)通用实用程序:(<cstdlib>函数的宽版本)
    wcstod		将宽字符串转换为双精度(函数)
    wcstof 		将宽字符串转换为浮点数(函数)
    wcstol      将宽字符串转换为长整数(函数)
    wcstold 	将宽字符串转换为长整数(函数)
    wcstoll		将宽字符串转换为长整型(函数)
    wcstoul		将宽字符串转换为无符号长整数(函数)
    wcstoull 	将宽字符串转换为无符号的long long整数(函数)
    (3) 字符/字符串转换:(主要是<cstdlib>函数的扩展版本)
    btowc		将单字节字符转换为宽字符(函数)
    mbrlen		获取多字节字符的长度(函数)
    mbrtowc		将多字节序列转换为宽字符(函数)
    mbsinit		检查初始转换状态(功能)
    mbsrtowcs	将多字节字符串转换为宽字符字符串(函数)
    wcrtomb		将宽字符转换为多字节序列(函数)
    wctob		将宽字符转换为单字节(函数)
    wcsrtombs	将宽字符字符串转换为多字节字符串(函数)
    (4)字符串:(<cstring>函数的宽版本)
    wcscat		连接宽字符串(函数)
    wcschr		在宽字符串中找到第一个出现的字符(函数)
    wcscmp		比较两个字符串(函数)
    wcscoll		使用语言环境比较两个宽字符串(函数)
    wcscpy		复制宽字符串(函数)
    wcscspn		获取跨度直到宽字符串中的字符(函数)
    wcslen		获得宽的字符串长度(函数)
    wcsncat		附加宽字符串中的字符(功能)
    wcsncmp		比较两个宽字符串的字符(函数)
    wcsncpy		复制宽字符串中的字符(功能)
    wcspbrk		查找宽字符串中的字符(功能)
    wcsrchr		在宽字符串中找到最后出现的字符(函数)
    wcsspn		获取宽字符串中字符集的范围(函数)
    wcsstr		找到宽字符串的子字符串(函数)
    wcstok		将宽字符串拆分为标记(函数)
    wcsxfrm		使用语言环境转换宽字符串(函数)
    wmemchr		在宽字符块中查找字符(函数)
    wmemcmp		比较两个宽字符块(功能)
    wmemcpy		复制宽字符块(功能)
    wmemmove	移动宽字符块(功能)
    wmemset		填充宽字符数组(函数)
    (5)时间:(<ctime>函数的宽泛版本)
    wcsftime    将时间格式化为宽字符串(函数)
          种类:
    mbstate_t	多字节转换状态(类型)
    size_t		无符号整数类型(type)
    struct tm	时间结构(类型)
    wchar_t		宽字符(类型)
    wint_t		宽int型(type)
          宏常量:
    NULL		空指针(宏)
    WCHAR_MAX	wchar_t的最大值(常量)
    WCHAR_MIN	wchar_t的最小值(常量)
    WEOF		宽文件结尾(常量)
    

    24.(wctype.h)

    宽字符类型
    此标头声明了一组用于分类和转换单个宽字符的函数。
    
    有关如何使用“ C”语言环境对标准ASCII字符集进行分类的更多信息,请参见<cctype>。
    
           功能:
    (1)字符分类功能
    他们检查作为参数传递的字符是否属于某个类别:
    Iswalnum		检查宽字符是否为字母数字(函数)
    iswalpha		检查宽字符是否为字母(功能)
    iswblank 		检查宽字符是否为空白(功能)
    iswcntrl		检查宽字符是否为控制字符(功能)
    iswdigit		检查宽字符是否为十进制数字(功能)
    iswgraph		检查宽字符是否具有图形表示(功能)
    iswlower		检查宽字符是否为小写字母(功能)
    iswprint		检查是否可以打印宽字符(功能)
    iswpunct		检查宽字符是否为标点字符(功能)
    iswspace		检查宽字符是否为空格(功能)
    iswupper		检查宽字符是否为大写字母(功能)
    iswxdigit		检查宽字符是否为十六进制数字(函数)
    (2)字符转换功能
    在字母大小写之间转换的两个函数:
    towlower		将大写的宽字符转换为小写(函数)
    towupper		将小写的宽字符转换为大写(函数)
    (3)可扩展的分类/转换功能
    iswctype		检查宽字符是否具有属性(功能)
    towctrans		使用转换进行转换(函数)
    wctrans			返回字符转换(函数)
    wctype          返回字符属性(函数)
           种类:
    wctrans_t		宽字符转换(类型)
    wctype_t		宽字符类型(type)
    wint_t			宽字符整数型(type)
    
           常数:
    WEOF            宽文件结尾(常量)
    
    展开全文
  • C语言学习——标准库C 标准库 - < assert.h >C 标准库 - < ctype.h >C 标准库 - < errno.h >C 标准库 - < float.h >C 标准库 - < limits.h >C 标准库 - < locale.h >C 标准库 -...

    C 标准库 - < assert.h >

    C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。

    已定义的宏 assert 指向另一个宏 NDEBUG,宏 NDEBUG 不是 <assert.h> 的一部分。如果已在引用 <assert.h> 的源文件中定义 NDEBUG 为宏名称,则 assert 宏的定义如下:

    #define assert(ignore) ((void)0)
    

    库宏

    下面列出了头文件 assert.h 中定义的唯一的函数:

    序号函数 & 描述
    1void assert(int expression) 这实际上是一个宏,不是一个函数,可用于在 C 程序中添加诊断。

    C 标准库 - < ctype.h >

    C 标准库的 ctype.h 头文件提供了一些函数,可用于测试和映射字符。

    这些函数接受 int 作为参数,它的值必须是 EOF 或表示为一个无符号字符。

    如果参数 c 满足描述的条件,则这些函数返回非零(true)。如果参数 c 不满足描述的条件,则这些函数返回零。

    库函数

    下面列出了头文件 ctype.h 中定义的函数:

    序号函数 & 描述
    1int isalnum(int c) 该函数检查所传的字符是否是字母和数字。
    2int isalpha(int c) 该函数检查所传的字符是否是字母。
    3int iscntrl(int c) 该函数检查所传的字符是否是控制字符。
    4int isdigit(int c) 该函数检查所传的字符是否是十进制数字。
    5int isgraph(int c) 该函数检查所传的字符是否有图形表示法。
    6int islower(int c) 该函数检查所传的字符是否是小写字母。
    7int isprint(int c) 该函数检查所传的字符是否是可打印的。
    8int ispunct(int c) 该函数检查所传的字符是否是标点符号字符。
    9int isspace(int c) 该函数检查所传的字符是否是空白字符。
    10int isupper(int c) 该函数检查所传的字符是否是大写字母。
    11int isxdigit(int c) 该函数检查所传的字符是否是十六进制数字。

    标准库还包含了两个转换函数,它们接受并返回一个 “int”

    序号函数 & 描述
    1int tolower(int c) 该函数把大写字母转换为小写字母。
    2int toupper(int c) 该函数把小写字母转换为大写字母。

    C 标准库 - < errno.h >

    C 标准库的 errno.h 头文件定义了整数变量 errno,它是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。该宏扩展为类型为 int 的可更改的左值,因此它可以被一个程序读取和修改。

    在程序启动时,errno 设置为零,C 标准库中的特定函数修改它的值为一些非零值以表示某些类型的错误。您也可以在适当的时候修改它的值或重置为零。

    errno.h 头文件定义了一系列表示不同错误代码的宏,这些宏应扩展为类型为 int 的整数常量表达式。

    库宏

    下面列出了头文件 errno.h 中定义的宏:

    序号宏 & 描述
    1extern int errno 这是通过系统调用设置的宏,在错误事件中的某些库函数表明了什么发生了错误。
    2EDOM Domain Error 这个宏表示一个域错误,它在输入参数超出数学函数定义的域时发生,errno 被设置为 EDOM。
    3ERANGE Range Error 这个宏表示一个范围错误,它在输入参数超出数学函数定义的范围时发生,errno 被设置为 ERANGE。

    C 标准库 - < float.h >

    C 标准库的 float.h 头文件包含了一组与浮点值相关的依赖于平台的常量。这些常量是由 ANSI C 提出的,这让程序更具有可移植性。在讲解这些常量之前,最好先弄清楚浮点数是由下面四个元素组成的:

    组件组件描述
    S符号 ( +/- )
    b指数表示的基数,2 表示二进制,10 表示十进制,16 表示十六进制,等等…
    e指数,一个介于最小值 emin 和最大值 emax 之间的整数。
    p精度,基数 b 的有效位数

    基于以上 4 个组成部分,一个浮点数的值如下:

    floating-point = ( S ) p x b^e
    

    floating-point = (+/-) precision x base^exponent
    

    库宏

    下面的值是特定实现的,且是通过 #define 指令来定义的,这些值都不得低于下边所给出的值。请注意,所有的实例 FLT 是指类型 float,DBL 是指类型 double,LDBL 是指类型 long double。

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

    C 标准库 - < limits.h >

    limits.h 头文件决定了各种变量类型的各种属性。定义在该头文件中的宏限制了各种变量类型(比如 char、int 和 long)的值。

    这些限制指定了变量不能存储任何超出这些限制的值,例如一个无符号可以存储的最大值是 255。

    库宏

    下面的值是特定实现的,且是通过 #define 指令来定义的,这些值都不得低于下边所给出的值。

    描述
    CHAR_BIT8定义一个字节的比特数。
    SCHAR_MIN-128定义一个有符号字符的最小值。
    SCHAR_MAX127定义一个有符号字符的最大值。
    UCHAR_MAX255定义一个无符号字符的最大值。
    CHAR_MIN0定义类型 char 的最小值,如果 char 表示负值,则它的值等于 SCHAR_MIN,否则等于 0。
    CHAR_MAX127定义类型 char 的最大值,如果 char 表示负值,则它的值等于 SCHAR_MAX,否则等于 UCHAR_MAX。
    MB_LEN_MAX1定义多字节字符中的最大字节数。
    SHRT_MIN-32768定义一个短整型的最小值。
    SHRT_MAX+32767定义一个短整型的最大值。
    USHRT_MAX65535定义一个无符号短整型的最大值。
    INT_MIN-32768定义一个整型的最小值。
    INT_MAX+32767定义一个整型的最大值。
    UINT_MAX65535定义一个无符号整型的最大值。
    LONG_MIN-2147483648定义一个长整型的最小值。
    LONG_MAX+2147483647定义一个长整型的最大值。
    ULONG_MAX4294967295定义一个无符号长整型的最大值。

    C 标准库 - < locale.h >

    locale.h 头文件定义了特定地域的设置,比如日期格式和货币符号。接下来我们将介绍一些宏,以及一个重要的结构 struct lconv 和两个重要的函数。

    库宏

    下面列出了头文件 locale.h 中定义的宏,这些宏将在下列的两个函数中使用:

    序号宏 & 描述
    1LC_ALL 设置下面的所有选项。
    2LC_COLLATE 影响 strcoll 和 strxfrm 函数。
    3LC_CTYPE 影响所有字符函数。
    4LC_MONETARY 影响 localeconv 函数提供的货币信息。
    5LC_NUMERIC 影响 localeconv 函数提供的小数点格式化和信息。
    6LC_TIME 影响 strftime 函数。

    库函数

    下面列出了头文件 locale.h 中定义的函数:

    序号函数 & 描述
    1char *setlocale(int category, const char *locale) 设置或读取地域化信息。
    2struct lconv *localeconv(void) 设置或读取地域化信息。

    C 标准库 - < math.h >

    math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果。
    库宏

    下面是这个库中定义的唯一的一个宏:

    序号宏 & 描述
    1HUGE_VAL 当函数的结果不可以表示为浮点数时。如果是因为结果的幅度太大以致于无法表示,则函数会设置 errno 为 ERANGE 来表示范围错误,并返回一个由宏 HUGE_VAL 或者它的否定(- HUGE_VAL)命名的一个特定的很大的值。如果结果的幅度太小,则会返回零值。在这种情况下,error 可能会被设置为 ERANGE,也有可能不会被设置为 ERANGE。

    库函数

    下面列出了头文件 math.h 中定义的函数:

    序号函数 & 描述
    1double acos(double x) 返回以弧度表示的 x 的反余弦。
    2double asin(double x) 返回以弧度表示的 x 的反正弦。
    3double atan(double x) 返回以弧度表示的 x 的反正切。
    4double atan2(double y, double x) 返回以弧度表示的 y/x 的反正切。y 和 x 的值的符号决定了正确的象限。
    5double cos(double x) 返回弧度角 x 的余弦。
    6double cosh(double x) 返回 x 的双曲余弦。
    7double sin(double x) 返回弧度角 x 的正弦。
    8double sinh(double x) 返回 x 的双曲正弦。
    9double tanh(double x) 返回 x 的双曲正切。
    10double exp(double x) 返回 e 的 x 次幂的值。
    11double frexp(double x, int *exponent) 把浮点数 x 分解成尾数和指数。返回值是尾数,并将指数存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent。
    12double ldexp(double x, int exponent) 返回 x 乘以 2 的 exponent 次幂。
    13double log(double x) 返回 x 的自然对数(基数为 e 的对数)。
    14double log10(double x) 返回 x 的常用对数(基数为 10 的对数)。
    15double modf(double x, double *integer) 返回值为小数部分(小数点后的部分),并设置 integer 为整数部分。
    16double pow(double x, double y) 返回 x 的 y 次幂。
    17double sqrt(double x) 返回 x 的平方根。
    18double ceil(double x) 返回大于或等于 x 的最小的整数值。
    19double fabs(double x) 返回 x 的绝对值。
    20double floor(double x) 返回小于或等于 x 的最大的整数值。
    21double fmod(double x, double y) 返回 x 除以 y 的余数。

    C 标准库 - < setjmp.h >

    setjmp.h 头文件定义了宏 setjmp()、函数 longjmp() 和变量类型 jmp_buf,该变量类型会绕过正常的函数调用和返回规则。
    库变量

    下面列出了头文件 setjmp.h 中定义的变量:

    序号变量 & 描述
    1jmp_buf 这是一个用于存储宏 setjmp() 和函数 longjmp() 相关信息的数组类型。

    库宏

    下面是这个库中定义的唯一的一个宏:

    序号宏 & 描述
    1int setjmp(jmp_buf environment) 这个宏把当前环境保存在变量 environment 中,以便函数 longjmp() 后续使用。如果这个宏直接从宏调用中返回,则它会返回零,但是如果它从 longjmp() 函数调用中返回,则它会返回一个非零值。

    库函数

    下面是头文件 setjmp.h 中定义的唯一的一个函数:

    序号函数 & 描述
    1void longjmp(jmp_buf environment, int value) 该函数恢复最近一次调用 setjmp() 宏时保存的环境,jmp_buf 参数的设置是由之前调用 setjmp() 生成的。

    C 标准库 - < signal.h >

    signal.h 头文件定义了一个变量类型 sig_atomic_t、两个函数调用和一些宏来处理程序执行期间报告的不同信号。
    库变量

    下面是头文件 signal.h 中定义的变量类型:

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

    库宏

    下面是头文件 signal.h 中定义的宏,这些宏将在下列两个函数中使用。SIG_ 宏与 signal 函数一起使用来定义信号的功能。

    序号宏 & 描述
    1SIG_DFL 默认的信号处理程序。
    2SIG_ERR 表示一个信号错误。
    3SIG_IGN 忽视信号。

    SIG 宏用于表示以下各种条件的信号码:

    序号宏 & 描述
    1SIGABRT 程序异常终止。
    2SIGFPE 算术运算出错,如除数为 0 或溢出。
    3SIGILL 非法函数映象,如非法指令。
    4SIGINT 中断信号,如 ctrl-C。
    5SIGSEGV 非法访问存储器,如访问不存在的内存单元。
    6SIGTERM 发送给本程序的终止请求信号。

    库函数

    下面是头文件 signal.h 中定义的函数:

    序号函数 & 描述
    1void (signal(int sig, void (func)(int)))(int) 该函数设置一个函数来处理信号,即信号处理程序。
    2int raise(int sig) 该函数会促使生成信号 sig。sig 参数与 SIG 宏兼容。

    C 标准库 - < stdarg.h >

    stdarg.h 头文件定义了一个变量类型 va_list 和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数。

    可变参数的函数通在参数列表的末尾是使用省略号(,…)定义的。

    库变量

    下面是头文件 stdarg.h 中定义的变量类型:

    序号变量 & 描述
    1va_list 这是一个适用于 va_start()、va_arg() 和 va_end() 这三个宏存储信息的类型。

    库宏

    下面是头文件 stdarg.h 中定义的宏:

    序号宏 & 描述
    1void va_start(va_list ap, last_arg) 这个宏初始化 ap 变量,它与 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。
    2type va_arg(va_list ap, type) 这个宏检索函数参数列表中类型为 type 的下一个参数。
    3void va_end(va_list ap) 这个宏允许使用了 va_start 宏的带有可变参数的函数返回。如果在从函数返回之前没有调用 va_end,则结果为未定义。

    C 标准库 - < stddef.h >

    stddef .h 头文件定义了各种变量类型和宏。这些定义中的大部分也出现在其它头文件中。
    库变量

    下面是头文件 stddef.h 中定义的变量类型:

    序号变量 & 描述
    1ptrdiff_t 这是有符号整数类型,它是两个指针相减的结果。
    2size_t 这是无符号整数类型,它是 sizeof 关键字的结果。
    3wchar_t 这是一个宽字符常量大小的整数类型。

    库宏

    下面是头文件 stddef.h 中定义的宏:

    序号宏 & 描述
    1NULL 这个宏是一个空指针常量的值。
    2offsetof(type, member-designator) 这会生成一个类型为 size_t 的整型常量,它是一个结构成员相对于结构开头的字节偏移量。成员是由 member-designator 给定的,结构的名称是在 type 中给定的。

    C 标准库 - < stdio.h >

    stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。
    库变量

    下面是头文件 stdio.h 中定义的变量类型:

    序号变量 & 描述
    1size_t 这是无符号整数类型,它是 sizeof 关键字的结果。
    2FILE 这是一个适合存储文件流信息的对象类型。
    3fpos_t 这是一个适合存储文件中任何位置的对象类型。

    库宏

    下面是头文件 stdio.h 中定义的宏:

    序号宏 & 描述
    1NULL 这个宏是一个空指针常量的值。
    2_IOFBF、_IOLBF 和 _IONBF 这些宏扩展了带有特定值的整型常量表达式,并适用于 setvbuf 函数的第三个参数。
    3BUFSIZ 这个宏是一个整数,该整数代表了 setbuf 函数使用的缓冲区大小。
    4EOF 这个宏是一个表示已经到达文件结束的负整数。
    5FOPEN_MAX 这个宏是一个整数,该整数代表了系统可以同时打开的文件数量。
    6FILENAME_MAX 这个宏是一个整数,该整数代表了字符数组可以存储的文件名的最大长度。如果实现没有任何限制,则该值应为推荐的最大值。
    7L_tmpnam 这个宏是一个整数,该整数代表了字符数组可以存储的由 tmpnam 函数创建的临时文件名的最大长度。
    8SEEK_CUR、SEEK_END 和 SEEK_SET 这些宏是在 fseek 函数中使用,用于在一个文件中定位不同的位置。
    9TMP_MAX 这个宏是 tmpnam 函数可生成的独特文件名的最大数量。
    10stderr、stdin 和 stdout 这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。

    库函数

    下面是头文件 stdio.h 中定义的函数:

    序号函数 & 描述
    1int fclose(FILE *stream) 关闭流 stream。刷新所有的缓冲区。
    2void clearerr(FILE *stream) 清除给定流 stream 的文件结束和错误标识符。
    3int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。
    4int ferror(FILE *stream) 测试给定流 stream 的错误标识符。
    5int fflush(FILE *stream) 刷新流 stream 的输出缓冲区。
    6int fgetpos(FILE *stream, fpos_t *pos) 获取流 stream 的当前文件位置,并把它写入到 pos。
    7FILE *fopen(const char *filename, const char *mode) 使用给定的模式 mode 打开 filename 所指向的文件。
    8size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 从给定流 stream 读取数据到 ptr 所指向的数组中。
    9FILE *freopen(const char *filename, const char *mode, FILE *stream) 把一个新的文件名 filename 与给定的打开的流 stream 关联,同时关闭流中的旧文件。
    10int fseek(FILE *stream, long int offset, int whence) 设置流 stream 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的 whence 位置查找的字节数。
    11int fsetpos(FILE *stream, const fpos_t *pos) 设置给定流 stream 的文件位置为给定的位置。参数 pos 是由函数 fgetpos 给定的位置。
    12long int ftell(FILE *stream) 返回给定流 stream 的当前文件位置。
    13size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 把 ptr 所指向的数组中的数据写入到给定流 stream 中。
    14int remove(const char *filename) 删除给定的文件名 filename,以便它不再被访问。
    15int rename(const char *old_filename, const char *new_filename) 把 old_filename 所指向的文件名改为 new_filename。
    16void rewind(FILE *stream) 设置文件位置为给定流 stream 的文件的开头。
    17void setbuf(FILE *stream, char *buffer) 定义流 stream 应如何缓冲。
    18int setvbuf(FILE *stream, char *buffer, int mode, size_t size)另一个定义流 stream 应如何缓冲的函数。
    19FILE *tmpfile(void) 以二进制更新模式(wb+)创建临时文件。
    20char *tmpnam(char *str) 生成并返回一个有效的临时文件名,该文件名之前是不存在的。
    21int fprintf(FILE *stream, const char *format, …) 发送格式化输出到流 stream 中。
    22int printf(const char *format, …) 发送格式化输出到标准输出 stdout。
    23int sprintf(char *str, const char *format, …) 发送格式化输出到字符串。
    24int vfprintf(FILE *stream, const char *format, va_list arg) 使用参数列表发送格式化输出到流 stream 中。
    25int vprintf(const char *format, va_list arg) 使用参数列表发送格式化输出到标准输出 stdout。
    26int vsprintf(char *str, const char *format, va_list arg) 使用参数列表发送格式化输出到字符串。
    27int fscanf(FILE *stream, const char *format, …) 从流 stream 读取格式化输入。
    28int scanf(const char *format, …) 从标准输入 stdin 读取格式化输入。
    29int sscanf(const char *str, const char *format, …) 从字符串读取格式化输入。
    30int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
    31char *fgets(char *str, int n, FILE *stream) 从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
    32int fputc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
    33int fputs(const char *str, FILE *stream) 把字符串写入到指定的流 stream 中,但不包括空字符。
    34int getc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
    35int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。
    36char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
    37int putc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
    38int putchar(int char) 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
    39int puts(const char *str) 把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中。
    40int ungetc(int char, FILE *stream) 把字符 char(一个无符号字符)推入到指定的流 stream 中,以便它是下一个被读取到的字符。
    41void perror(const char *str) 把一个描述性错误消息输出到标准错误 stderr。首先输出字符串 str,后跟一个冒号,然后是一个空格。

    C 标准库 - < stdlib.h >

    stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。
    库变量

    下面是头文件 stdlib.h 中定义的变量类型:

    序号变量 & 描述
    1size_t 这是无符号整数类型,它是 sizeof 关键字的结果。
    2wchar_t 这是一个宽字符常量大小的整数类型。
    3div_t 这是 div 函数返回的结构。
    4ldiv_t 这是 ldiv 函数返回的结构。

    库宏

    下面是头文件 stdlib.h 中定义的宏:

    序号宏 & 描述
    1NULL 这个宏是一个空指针常量的值。
    2EXIT_FAILURE 这是 exit 函数失败时要返回的值。
    3EXIT_SUCCESS 这是 exit 函数成功时要返回的值。
    4RAND_MAX 这个宏是 rand 函数返回的最大值。
    5MB_CUR_MAX 这个宏表示在多字节字符集中的最大字符数,不能大于 MB_LEN_MAX。

    库函数

    下面是头文件 stdlib.h 中定义的函数:

    序号函数 & 描述
    1double atof(const char *str) 把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。
    2int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。
    3long int atol(const char *str) 把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。
    4double strtod(const char str, char *endptr) 把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。
    5long int strtol(const char str, char *endptr, int base) 把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。
    6unsigned long int strtoul(const char str, char *endptr, int base) 把参数 str 所指向的字符串转换为一个无符号长整数(类型为 unsigned long int 型)。
    7void *calloc(size_t nitems, size_t size) 分配所需的内存空间,并返回一个指向它的指针。
    8void free(void *ptr) 释放之前调用 calloc、malloc 或 realloc 所分配的内存空间。
    9void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针。
    10void *realloc(void *ptr, size_t size) 尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。
    11void abort(void) 使一个异常程序终止。
    12int atexit(void (*func)(void)) 当程序正常终止时,调用指定的函数 func。
    13void exit(int status) 使程序正常终止。
    14char *getenv(const char *name) 搜索 name 所指向的环境字符串,并返回相关的值给字符串。
    15int system(const char *string) 由 string 指定的命令传给要被命令处理器执行的主机环境。
    16void bsearch(const void *key, const void *base, size_t nitems, size_t size, int (compar)(const void *, const void *)) 执行二分查找。
    17void qsort(void base, size_t nitems, size_t size, int (*compar)(const void *, const void)) 数组排序。
    18int abs(int x) 返回 x 的绝对值。
    19div_t div(int numer, int denom) 分子除以分母。
    20long int labs(long int x) 返回 x 的绝对值。
    21ldiv_t ldiv(long int numer, long int denom) 分子除以分母。
    22int rand(void) 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。
    23void srand(unsigned int seed) 该函数播种由函数 rand 使用的随机数发生器。
    24int mblen(const char *str, size_t n) 返回参数 str 所指向的多字节字符的长度。
    25size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) 把参数 str 所指向的多字节字符的字符串转换为参数 pwcs 所指向的数组。
    26int mbtowc(whcar_t *pwc, const char *str, size_t n) 检查参数 str 所指向的多字节字符。
    27size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) 把数组 pwcs 中存储的编码转换为多字节字符,并把它们存储在字符串 str 中。
    28int wctomb(char *str, wchar_t wchar) 检查对应于参数 wchar 所给出的多字节字符的编码。

    C 标准库 - < string.h >

    string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。
    库变量

    下面是头文件 string.h 中定义的变量类型:

    序号变量 & 描述
    1size_t 这是无符号整数类型,它是 sizeof 关键字的结果。

    库宏

    下面是头文件 string.h 中定义的宏:

    序号宏 & 描述
    1NULL 这个宏是一个空指针常量的值。

    库函数

    下面是头文件 string.h 中定义的函数:

    序号函数 & 描述
    1void *memchr(const void *str, int c, size_t n) 在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。
    2int memcmp(const void *str1, const void *str2, size_t n) 把 str1 和 str2 的前 n 个字节进行比较。
    3void *memcpy(void *dest, const void *src, size_t n) 从 src 复制 n 个字符到 dest。
    4void *memmove(void *dest, const void *src, size_t n) 另一个用于从 src 复制 n 个字符到 dest 的函数。
    5void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。
    6char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
    7char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
    8char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。
    9int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
    10int strncmp(const char *str1, const char *str2, size_t n) 把 str1 和 str2 进行比较,最多比较前 n 个字节。
    11int strcoll(const char *str1, const char *str2) 把 str1 和 str2 进行比较,结果取决于 LC_COLLATE 的位置设置。
    12char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
    13char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。
    14size_t strcspn(const char *str1, const char *str2) 检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符。
    15char *strerror(int errnum) 从内部数组中搜索错误号 errnum,并返回一个指向错误消息字符串的指针。
    16size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
    17char *strpbrk(const char *str1, const char *str2) 检索字符串 str1 中第一个匹配字符串 str2 中字符的字符,不包含空结束字符。也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。
    18char *strrchr(const char *str, int c) 在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。
    19size_t strspn(const char *str1, const char *str2) 检索字符串 str1 中第一个不在字符串 str2 中出现的字符下标。
    20char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle(不包含空结束字符)的位置。
    21char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串,delim 为分隔符。
    22size_t strxfrm(char *dest, const char *src, size_t n) 根据程序当前的区域选项中的 LC_COLLATE 来转换字符串 src 的前 n 个字符,并把它们放置在字符串 dest 中。

    C 标准库 - < time.h >

    time.h 头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。
    库变量

    下面是头文件 time.h 中定义的变量类型:

    序号变量 & 描述
    1size_t 是无符号整数类型,它是 sizeof 关键字的结果。
    2clock_t 这是一个适合存储处理器时间的类型。
    3time_t is 这是一个适合存储日历时间类型。
    4struct tm 这是一个用来保存时间和日期的结构。

    tm 结构的定义如下:

    struct tm {
       int tm_sec;         /* 秒,范围从 0 到 59        */
       int tm_min;         /* 分,范围从 0 到 59        */
       int tm_hour;        /* 小时,范围从 0 到 23        */
       int tm_mday;        /* 一月中的第几天,范围从 1 到 31    */
       int tm_mon;         /* 月,范围从 0 到 11        */
       int tm_year;        /* 自 1900 年起的年数        */
       int tm_wday;        /* 一周中的第几天,范围从 0 到 6    */
       int tm_yday;        /* 一年中的第几天,范围从 0 到 365    */
       int tm_isdst;       /* 夏令时                */
    };
    

    库宏

    下面是头文件 time.h 中定义的宏:

    序号宏 & 描述
    1NULL 这个宏是一个空指针常量的值。
    2CLOCKS_PER_SEC 这个宏表示每秒的处理器时钟个数。

    库函数

    下面是头文件 time.h 中定义的函数:

    序号函数 & 描述
    1char *asctime(const struct tm *timeptr) 返回一个指向字符串的指针,它代表了结构 timeptr 的日期和时间。
    2clock_t clock(void) 返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。
    3char *ctime(const time_t *timer) 返回一个表示当地时间的字符串,当地时间是基于参数 timer。
    4double difftime(time_t time1, time_t time2) 返回 time1 和 time2 之间相差的秒数 (time1-time2)。
    5struct tm *gmtime(const time_t *timer) timer 的值被分解为 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
    6struct tm *localtime(const time_t *timer) timer 的值被分解为 tm 结构,并用本地时区表示。
    7time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。
    8size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。
    9time_t time(time_t *timer) 计算当前日历时间,并把它编码成 time_t 格式。

    学习参考资料:

    https://www.nowcoder.com/tutorial/10002/5a9c8f0d446a46b6b0463e2aa6ddbe4e
    
    展开全文
  • C语言c语言基础知识梳理(超全)

    万次阅读 多人点赞 2020-04-08 18:27:10
    C语言知识梳理零、概述一、变量和基本类型(一)基本类型(二)变量(三)复合类型(四)const限定符(五)字符串二、表达式三、语句四、函数五、指针六、.h文件声明以及编译预处理指令     零、概述 写此篇博客的...
  • 可以将字符集理解成一个很的表格,它列出了所有字符和二进制的对应关系,计算机显示文字或者存储文字,就是一个查表的过程。 ASCII :American Standard Code for Information Interchange,美国信息交换标准代码 ...
  • C语言标准函数库

    千次阅读 2014-06-13 01:19:30
    http://blog.csdn.net/pipisorry/article/details/30398049C语言标准头 断言 字符类测试 (部分)库函数抛出的错误代码 浮点数运算 检测整型数据类型值范围 本土化 数学函数 “非局部跳转” 信号 可变参数列表 一些...
  • C语言根据需要,抽象出了一些基本数据类型和衍生数据类型。这些可以满足部分需求,更复杂的抽象数据类型亦可通过它们来组成。1. 数据存储 计算机存储的最小单位是bit,它表示0或1。而计算机可寻址的最小单位是byte...
  • 如果用了l标志,把wint_t参数转为包含两个元素的wchart_t数组,其中第一个元素包含要输出的字符,第二个元素为null宽字符。 p void *型 a, A double型的16进制表示,"[−]0xh.hhhh p±d"。其中指数部分为10进制...
  • wchar_t 。 div_t 是结构体类型 作为 div 函数的返回类型 ldiv_t 是一个结构类型,是函数 ldiv 的返回值类型。 定义了六类函数: 字符串函数 double atof(const char *nptr); 将字符串转换成浮点...
  • 它会返回一个类型,叫做wint_t 可以表示所有无效wchar_t 类型,包括WEOF,来表示到达文件末尾。 Michal Fori?ek 下面这段C程序可以准确的打印2的747次方而不产生误差。这是为什么呢? 程序: #include #include int ...
  • 每个转换规范具有以下格式:介绍%字符(可选)一个或多个标志,用于修改转换的行为: - :转换结果在字段内左对齐(默认情况下,它是右对齐的)+ :带符号转换的符号总是作为转换结果的前缀(默认情况下,只有当结果为负...
  • c语言头文件

    2019-12-20 16:25:52
    wchar_t 宽字符常量大小的整数类型 NULL offsetof(type, member-designator) <stdio.h> 文件读写 FILE、fpos_t … 通用工具函数 RAND_MAX rand 函数返回的最大值 MB_CUR_MAX 多字节字符集中的最大字符数 ...
  • 每个转换规范具有以下格式:介绍%字符(可选)一个或多个标志,用于修改转换的行为: - :转换结果在字段内左对齐(默认情况下,它是右对齐的)+ :带符号转换的符号总是作为转换结果的前缀(默认情况下,只有当结果为负...
  • C语言标准库函数

    2014-10-20 11:07:06
    C语言标准头 断言 字符类测试 (部分)库函数抛出的错误代码 浮点数运算 检测整型数据类型值范围 本土化 数学函数 “非局部跳转” 信号 可变参数列表 一些常数,类型和变量 输入和输出 ...
  • 如果存在 l 长度修饰符,则对 wint_t 实参进行转换,就像使用 ls 转换说明进行转换一样且没有精度,而实参指向含两个元素的 wchar_t 数组的初始元素。第一个元素包含 lc 转换说明的 wint_t 实参,第二个元素是空宽...
  • 定义浮点型数值四舍五入的方式,-1是不确定,0是向0,1是向最近,2是向正无穷大,3是负无穷大 FLT_RADIX 2 定义指数的基本表示(比如base-2是二进制,base-10是十进制表示法,16是十六进制)...
  • C语言参考手册

    千次阅读 2013-12-15 19:24:27
    定义浮点型数值四舍五入的方式,-1是不确定,0是向0,1是向最近,2是向正无穷大,3是负无穷大 FLT_RADIX 2 定义指数的基本表示(比如base-2是二进制,base-10是十进制表示法,16是十六进制) FLT_MANT_DIG,DBL_MANT...
  • wchar_t 。它会返回一个类型,叫做 wint_t  可以表示所有无效 wchar_t  类型,包括 WEOF ,来表示到达文件末尾。 Michal Forišek 下面这段C程序可以准确的打印2的747次方而不产生误差。这是为什么呢?...
  • C/C++基础知识

    2018-05-14 15:04:58
    time_t t = time(0); //产生“YYYY-MM-DD hh:mm:ss”格式的字符串。 char s[32]; strftime(s, sizeof(s), “%Y-%m-%d %H:%M:%S”, localtime(&t)); sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC...
  • Arithmetic types

    2021-05-21 12:41:11
    (另请参阅类型系统概述的类型以及由C库提供的与类型相关的实用程序的列表)。_Bool (也可以作为宏布尔) - 类型,能够保存两个值之一:1和0(也可以通过宏来...(since C99)字符类型signed char - 输入有符号字符表示...
  • c标准库总结

    千次阅读 多人点赞 2019-03-14 10:28:54
    学习c语言十几年了,却从来没有完整的将c标准库看一看,我想在这一点上我是欠缺的。作为一个技术人员,无论什么时候都不能忘记自己最擅长的技能,这次借一个偶然的契机,翻一翻c标准库,希望以后自己在技术上越来越...
  • char、wchar_t类型 C++中的char类型与C相似,可以参照C语言部分。需要再次说明的是,char类型也可以用来表示较小的整数,用signed char表示有符号整数,而unsigned char表示无符号整数。 除了char类型以外,还有一...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 130
精华内容 52
关键字:

c语言wchar_t 无穷大符号

友情链接: jieshumokuai.rar