C语言教程 第3页

C语言 标准库 –

简介 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...

C语言 标准库 –

简介 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() 生成的。

C语言 标准库 –

简介 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 宏兼容。

C语言 标准库 –

简介 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_arg 和 va_end 宏是一起使用的。last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。 2 type va_arg(va_list ap, type)这个宏检索函数参数列表中类型为 type 的下一个参数。 3 void va_end(va_list ap)这个宏允许使用了 va_start 宏的带有可变参数的函数返回。如果在从函数返回之前没有调用 va_end,则结果为未定义。

C语言 标准库 –

简介 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 中给定的。

C语言 标准库 –

简介 stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。 库变量 下面是头文件 stdio.h 中定义的变量类型: 序号 变量 & 描述 1 size_t 这是无符号整数类型,它是 sizeof 关键字的结果。 2 FILE 这是一个适合存储文件流信息的对象类型。 3 fpos_t 这是一个适合存储文件中任何位置的对象类型。 库宏 下面是头文件 stdio.h 中定义的宏: 序号 宏 & 描述 1 NULL这个宏是一个空指针常量的值。 2 _IOFBF、_IOLBF 和 _IONBF 这些宏扩展了带有特定值的整型常量表达式,并适用于 setvbuf 函数的第三个参数。 3 BUFSIZ这个宏是一个整数,该整数代表了 setbuf 函数使用的缓冲区大小。 4 EOF 这个宏是一个表示已经到达文件结束的负整数。 5 FOPEN_MAX 这个宏是一个整数,该整数代表了系统可以同时打开的文件数量。 6 FILENAME_MAX 这个宏是一个整数,该整数代表了字符数组可以存储的文件名的最大长度。如果实现没有任何限制,则该值应为推荐的最大值。 7 L_tmpnam 这个宏是一个整数,该整数代表了字符数组可以存储的由 tmpnam 函数创建的临时文件名的最大长度。 8 SEEK_CUR、SEEK_END 和 SEEK_SET 这些宏是在These macros are used in the fseek 函数中使用,用于在一个文件中定位不同的位置。 9 TMP_MAX 这个宏是 tmpnam 函数可生成的独特文件名的最大数量。 10 stderr、stdin 和 stdout 这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。 库函数 下面是头文件 stdio.h 中定义的函数: 为了更好地理解函数,请按照下面的序列学习这些函数,因为第一个函数中创建的文件会在后续的函数中使用到。 序号 函数 & 描述 1 int fclose(FILE *stream)关闭流 stream。刷新所有的缓冲区。 2 void clearerr(FILE *stream)清除给定流 stream 的文件结束和错误标识符。 3 int feof(FILE *stream)测试给定流 stream 的文件结束标识符。 4 int ferror(FILE *stream)测试给定流 stream 的错误标识符。 5 int fflush(FILE *stream)刷新流 stream 的输出缓冲区。...

C语言 标准库 –

简介 stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。 库变量 下面是头文件 stdlib.h 中定义的变量类型: 序号 变量 & 描述 1 size_t 这是无符号整数类型,它是 sizeof 关键字的结果。 2 wchar_t 这是一个宽字符常量大小的整数类型。 3 div_t 这是 div 函数返回的结构。 4 ldiv_t 这是 ldiv 函数返回的结构。 库宏 下面是头文件 stdlib.h 中定义的宏: 序号 宏 & 描述 1 NULL这个宏是一个空指针常量的值。 2 EXIT_FAILURE这是 exit 函数失败时要返回的值。 3 EXIT_SUCCESS这是 exit 函数成功时要返回的值。 4 RAND_MAX 这个宏是 rand 函数返回的最大值。 5 MB_CUR_MAX 这个宏表示在多字节字符集中的最大字符数,不能大于 MB_LEN_MAX。 库函数 下面是头文件 stdlib.h 中定义的函数: 序号 函数 & 描述 1 double atof(const char *str)把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。 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)把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。 5 long int strtol(const char *str, char **endptr, int base)把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。...

C语言 标准库 –

简介 string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。 库变量 下面是头文件 string.h 中定义的变量类型: 序号 变量 & 描述 1 size_t 这是无符号整数类型,它是 sizeof 关键字的结果。 库宏 下面是头文件 string.h 中定义的宏: 序号 宏 & 描述 1 NULL这个宏是一个空指针常量的值。 库函数 下面是头文件 string.h 中定义的函数: 序号 函数 & 描述 1 void *memchr(const void *str, int c, size_t n)在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。 2 int memcmp(const void *str1, const void *str2, size_t n)把 str1 和 str2 的前 n 个字节进行比较。 3 void *memcpy(void *dest, const void *src, size_t n)从 src 复制 n 个字符到 dest。 4 void *memmove(void *dest, const void *src, size_t n)另一个用于从 str2 复制 n 个字符到 str1 的函数。 5 void *memset(void *str, int c, size_t n)复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。 6 char *strcat(char *dest, const char *src)把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 7 char...

C语言 标准库 –

简介 time.h 头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。 库变量 下面是头文件 time.h 中定义的变量类型: 序号 变量 & 描述 1 size_t 是无符号整数类型,它是 sizeof 关键字的结果。 2 clock_t 这是一个适合存储处理器时间的类型。 3 time_t这是一个适合存储日历时间类型。 4 struct 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 中定义的宏: 序号 宏 & 描述 1 NULL这个宏是一个空指针常量的值。 2 CLOCKS_PER_SEC 这个宏表示每秒的处理器时钟个数。 库函数 下面是头文件 time.h 中定义的函数: 序号 函数 & 描述...

C语言 标准库 –

简介 C 标准库的 ctype.h 头文件提供了一些函数,可用于测试和映射字符。 这些函数接受 int 作为参数,它的值必须是 EOF 或表示为一个无符号字符。 如果参数 c 满足描述的条件,则这些函数返回非零(true)。如果参数 c 不满足描述的条件,则这些函数返回零。 库函数 下面列出了头文件 ctype.h 中定义的函数: 序号 函数 & 描述 1 int isalnum(int c)该函数检查所传的字符是否是字母和数字。 2 int isalpha(int c)该函数检查所传的字符是否是字母。 3 int iscntrl(int c)该函数检查所传的字符是否是控制字符。 4 int isdigit(int c)该函数检查所传的字符是否是十进制数字。 5 int isgraph(int c)该函数检查所传的字符是否有图形表示法。 6 int islower(int c)该函数检查所传的字符是否是小写字母。 7 int isprint(int c)该函数检查所传的字符是否是可打印的。 8 int ispunct(int c)该函数检查所传的字符是否是标点符号字符。 9 int isspace(int c)该函数检查所传的字符是否是空白字符。 10 int isupper(int c)该函数检查所传的字符是否是大写字母。 11 int isxdigit(int c)该函数检查所传的字符是否是十六进制数字。 标准库还包含了两个转换函数,它们接受并返回一个 “int” 序号 函数 & 描述 1 int tolower(int c)该函数把大写字母转换为小写字母。 2 int toupper(int c)该函数把小写字母转换为大写字母。 字符类 序号 字符类 & 描述 1 数字完整的数字集合 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } 2 十六进制数字集合 { 0 1 2 3 4 5 6 7 8 9 A B C D E F a...