zoukankan      html  css  js  c++  java
  • C语言笔记 15_标准库&locale&math&setjmp&signal&stdarg&stddef

    <locale.h>

    简介

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

    库宏

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

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

    库函数

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

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

    库结构

    typedef struct {
       char *decimal_point;
       char *thousands_sep;
       char *grouping;    
       char *int_curr_symbol;
       char *currency_symbol;
       char *mon_decimal_point;
       char *mon_thousands_sep;
       char *mon_grouping;
       char *positive_sign;
       char *negative_sign;
       char int_frac_digits;
       char frac_digits;
       char p_cs_precedes;
       char p_sep_by_space;
       char n_cs_precedes;
       char n_sep_by_space;
       char p_sign_posn;
       char n_sign_posn;
    } lconv
    

    以下是各字段的描述:

    序号 字段 & 描述
    1 decimal_point 用于非货币值的小数点字符。
    2 thousands_sep 用于非货币值的千位分隔符。
    3 grouping 一个表示非货币量中每组数字大小的字符串。每个字符代表一个整数值,每个整数指定当前组的位数。值为 0 意味着前一个值将应用于剩余的分组。
    4 int_curr_symbol 国际货币符号使用的字符串。前三个字符是由 ISO 4217:1987 指定的,第四个字符用于分隔货币符号和货币量。
    5 currency_symbol 用于货币的本地符号。
    6 mon_decimal_point 用于货币值的小数点字符。
    7 mon_thousands_sep 用于货币值的千位分隔符。
    8 mon_grouping 一个表示货币值中每组数字大小的字符串。每个字符代表一个整数值,每个整数指定当前组的位数。值为 0 意味着前一个值将应用于剩余的分组。
    9 positive_sign 用于正货币值的字符。
    10 negative_sign 用于负货币值的字符。
    11 int_frac_digits 国际货币值中小数点后要显示的位数。
    12 frac_digits 货币值中小数点后要显示的位数。
    13 p_cs_precedes 如果等于 1,则 currency_symbol 出现在正货币值之前。如果等于 0,则 currency_symbol 出现在正货币值之后。
    14 p_sep_by_space 如果等于 1,则 currency_symbol 和正货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和正货币值之间不使用空格分隔。
    15 n_cs_precedes 如果等于 1,则 currency_symbol 出现在负货币值之前。如果等于 0,则 currency_symbol 出现在负货币值之后。
    16 n_sep_by_space 如果等于 1,则 currency_symbol 和负货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和负货币值之间不使用空格分隔。
    17 p_sign_posn 表示正货币值中正号的位置。
    18 n_sign_posn 表示负货币值中负号的位置。

    下面的值用于 p_sign_posnn_sign_posn:

    描述
    0 封装值和 currency_symbol 的括号。
    1 放置在值和 currency_symbol 之前的符号。
    2 放置在值和 currency_symbol 之后的符号。
    3 紧挨着放置在值和 currency_symbol 之前的符号。
    4 紧挨着放置在值和 currency_symbol 之后的符号。

    <math.h>

    简介

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

    库宏

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

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

    库函数

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

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

    <setjmp.h>

    简介

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

    库变量

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

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

    库宏

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

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

    库函数

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

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

    <signal.h>

    简介

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

    库变量

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

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

    库宏

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

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

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

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

    库函数

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

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

    <stdarg.h>

    简介

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

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

    库变量

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

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

    库宏

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

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

    <stddef.h>

    简介

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

    库变量

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

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

    库宏

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

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

    参考自:https://www.runoob.com/cprogramming/c-tutorial.html

  • 相关阅读:
    Java 工程名上有个红色叹号
    TestNG 入门教程
    字典序问题
    统计数字问题
    sniffer 简介
    【转】IE浏览器快捷键大全
    批处理 延时不完全总结【转】
    批处理(Batch)---批处理脚本。
    windows系统命令行
    计算机网络
  • 原文地址:https://www.cnblogs.com/rope/p/12173349.html
Copyright © 2011-2022 走看看