为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

c语言头文件

2017-09-26 22页 doc 62KB 12阅读

用户头像

is_353097

暂无简介

举报
c语言头文件c语言头文件 ctype.h 字符处理函数: 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 ---------------------------------------- 字符测试是否字母和数字 isalnum 是否字母 isalpha 是否控制字符 iscntrl 是否数字 isdigit 是否可显示字符(除空格外) isgraph 是否可显示字符(包括空格) isprint 是否既不是空格,又不是字母和数字的可显示字符 ispunct 是否空格 isspace 是否大写字...
c语言头文件
c语言头文件 ctype.h 字符处理函数: 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 ---------------------------------------- 字符测试是否字母和数字 isalnum 是否字母 isalpha 是否控制字符 iscntrl 是否数字 isdigit 是否可显示字符(除空格外) isgraph 是否可显示字符(包括空格) isprint 是否既不是空格,又不是字母和数字的可显示字符 ispunct 是否空格 isspace 是否大写字母 isupper 是否16进制数字(0,9,A-F)字符 isxdigit 字符大小写转换函数 转换为大写字母 toupper 转换为小写字母 tolower 头文件 local.h 地区化: 本类别的函数用于处理不同国家的语言差异。 ---------------------------------------- 地区控制 地区设置 setlocale 数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv 头文件 math.h 数学函数: 本分类给出了各种数学计算函数,必须提醒的是ANSI C中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) ---------------------------------------- 反余弦 acos 反正弦 asin 反正切 atan 反正切2 atan2 余弦 cos 正弦 sin 正切 tan 双曲余弦 cosh 双曲正弦 sinh 双曲正切 tanh 指数函数 exp 指数分解函数 frexp 1 乘积指数函数 fdexp 自然对数 log 以10为底的对数 log10 浮点数分解函数 modf 幂函数 pow 平方根函数 sqrt 求下限接近整数 ceil 绝对值 fabs 求上限接近整数 floor 求余数 fmod 头文件 setjmp.h io.h 本分类函数用于实现在不同底函数之间直接跳转代码。 ---------------------------------------- 保存调用环境 setjmp 恢复调用环境 longjmp 头文件 signal.h 信号处理: 该分类函数用于处理那些在程序执行过程中发生例外的情况。 ---------------------------------------- 指定信号处理函数 signal 发送信号 raise 头文件 stdarg.h 可变参数处理: 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 ---------------------------------------- 可变参数访问宏 可变参数开始宏 va_start 可变参数结束宏 va_end 可变参数访问宏 访问下一个可变参数宏 va_arg 头文件 stdio.h 输入输出函数:该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现 ---------------------------------------- 删除文件 remove 修改文件名称 rename 生成临时文件名称 tmpfile 得到临时文件路径 tmpnam 文件访问 关闭文件 fclose 刷新缓冲区 fflush 2 打开文件 fopen 将已存在的流指针和新文件连接 freopen 设置磁盘缓冲区 setbuf 设置磁盘缓冲区 setvbuf 格式化输入与输出函数 格式输出 fprintf 格式输入 fscanf 格式输出(控制台) printf 格式输入(控制台) scanf 格式输出到缓冲区 sprintf 从缓冲区中按格式输入 sscanf 格式化输出 vfprintf 格式化输出 vprintf 格式化输出 vsprintf 字符输入输出函数 输入一个字符 fgetc 字符串输入 fgets 字符输出 fputc 字符串输出 fputs 字符输入(控制台) getc 字符输入(控制台) getchar 字符串输入(控制台) gets 字符输出(控制台) putc 字符输出(控制台) putchar 字符串输出(控制台) puts 字符输出到流的头部 ungetc 直接输入输出 直接流读操作 fread 直接流写操作 fwrite 文件定位函数 得到文件位置 fgetpos 文件位置移动 fseek 文件位置设置 fsetpos 得到文件位置 ftell 文件位置复零位 remind 错误处理函数 错误清除 clearerr 文件结尾判断 feof 文件错误检测 ferror 得到错误提示字符串 perror 3 头文件 stdlib.h 实用工具函数: 本分类给出了一些函数无法按以上分类,但又是编程所必须要的。 ---------------------------------------- 字符串转换函数 字符串转换为整数 atoi 字符串转换为长整数 atol 字符串转换为浮点数 strtod 字符串转换为长整数 strtol 字符串转换为无符号长整型 strtoul 伪随机序列产生函数 产生随机数 rand 设置随机函数的起动数值 srand 存储管理函数 分配存储器 calloc 释放存储器 free 存储器分配 malloc 重新分配存储器 realloc 环境通信 中止程序 abort 退出程序执行,并清除环境变量 atexit 退出程序执行 exit 读取环境参数 getenv 程序挂起,临时执行一个其他程序 system 搜索和排序工具 二分查找(数据必须已排序) bsearch 快速排序 qsort 整数运算函数 求绝对值 abs 得到除法运算底商和余数 div 求长整形底绝对值 labs 求长整形除法的商和余数 ldiv 多字节字符函数 得到多字节字符的字节数 mblen 得到多字节字符的字节数 mbtowc 多字节字符转换 wctomb 多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs 将多字节串转换为字符数组 mcstowbs 头文件 string.h 字符串处理: 本分类的函数用于对字符串进行合并、比较等操作 ---------------------------------------- 字符串拷贝 块拷贝(目的和源存储区不可重叠) memcpy 块拷贝(目的和源存储区可重叠) memmove 串拷贝 strcpy 4 按长度的串拷贝 strncpy 字符串连接函数 串连接 strcat 按长度连接字符串 strncat 串比较函数 块比较 memcmp 字符串比较 strcmp 字符串比较(用于非英文字符) strcoll 按长度对字符串比较 strncmp 字符串转换 strxfrm 字符与字符串查找 字符查找 memchr 字符查找 strchr 字符串查找 strcspn 字符串查找 strpbrk 字符串查找 strspn 字符串查找 strstr 字符串分解 strtok 杂类函数 字符串设置 memset 错误字符串映射 strerror 求字符串长度 strlen 头文件 time.h 日期和时间函数: 本类别给出时间和日期处理函数 ---------------------------------------- 时间操作函数得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 时间转换函数 得到以ASCII码表示的时间 asctime 得到字符串表示的时间 ctime 得到指定格式的时间 strftime 序号 库类别 头文件 ---------------------------------------- 1 错误处理 errno.h 2 字符处理 ctype.h 3 地区化 local.h 4 数学函数 math.h 5 信号处理 signal.h 6 输入输出 stdio.h 7 实用工具程序 stdlib.h 8 字符串处理 string.h 5 字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件 ctype.h 函数列表<> 函数类别 函数用途 详细说明 字符测试 是否字母和数字 isalnum 是否字母 isalpha 是否控制字符 iscntrl 是否数字 isdigit 是否可显示字符(除空格外) isgraph 是否可显示字符(包括空格) isprint 是否既不是空格,又不是字母和数字的可显示字符 ispunct 是否空格 isspace 是否大写字母 isupper 是否16进制数字(0,9,A-F)字符 isxdigit 字符大小写转换函数 转换为大写字母 toupper 转换为小写字母 tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件 local.h 函数列表 函数类别 函数用途 详细说明 地区控制 地区设置 setlocale 数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件 math.h 函数列表 函数类别 函数用途 详细说明 错误条件处理 定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数 反余弦 acos 反正弦 asin 6 反正切 atan 反正切2 atan2 余弦 cos 正弦 sin 正切 tan 双曲函数 双曲余弦 cosh 双曲正弦 sinh 双曲正切 tanh 指数和对数 指数函数 exp 指数分解函数 frexp 乘积指数函数 fdexp 自然对数 log 以10为底的对数 log10 浮点数分解函数 modf 幂函数 幂函数 pow 平方根函数 sqrt 整数截断,绝对值和求余数函数 求下限接近整数 ceil 绝对值 fabs 求上限接近整数 floor 求余数 fmod 本分类函数用于实现在不同底函数之间直接跳转代码。 头文件 setjmp.h io.h 函数列表 函数类别 函数用途 详细说明 保存调用环境 setjmp 恢复调用环境 longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件 signal.h 函数列表 函数类别 函数用途 详细说明 指定信号处理函数 signal 发送信号 raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 7 头文件 stdarg.h 函数列表 函数类别 函数用途 详细说明 可变参数访问宏 可变参数开始宏 va_start 可变参数结束宏 va_end 可变参数访问宏 访问下一个可变参数宏 va_arg 输入输出函数 该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现 头文件 stdio.h 函数列表 函数类别 函数用途 详细说明 文件操作 删除文件 remove 修改文件名称 rename 生成临时文件名称 tmpfile 得到临时文件路径 tmpnam 文件访问 关闭文件 fclose 刷新缓冲区 fflush 打开文件 fopen 将已存在的流指针和新文件连接 freopen 设置磁盘缓冲区 setbuf 设置磁盘缓冲区 setvbuf 格式化输入与输出函数 格式输出 fprintf 格式输入 fscanf 格式输出(控制台) printf 格式输入(控制台) scanf 格式输出到缓冲区 sprintf 从缓冲区中按格式输入 sscanf 格式化输出 vfprintf 格式化输出 vprintf 格式化输出 vsprintf 字符输入输出函数 输入一个字符 fgetc 字符串输入 fgets 字符输出 fputc 字符串输出 fputs 字符输入(控制台) getc 字符输入(控制台) getchar 字符串输入(控制台) gets 8 字符输出(控制台) putc 字符输出(控制台) putchar 字符串输出(控制台) puts 字符输出到流的头部 ungetc 直接输入输出 直接流读操作 fread 直接流写操作 fwrite 文件定位函数 得到文件位置 fgetpos 文件位置移动 fseek 文件位置设置 fsetpos 得到文件位置 ftell 文件位置复零位 remind 错误处理函数 错误清除 clearerr 文件结尾判断 feof 文件错误检测 ferror 得到错误提示字符串 perror 实用工具函数 本分类给出了一些函数无法按以上分类,但又是编程所必须要的。 头文件 stdlib.h 函数列表 函数类别 函数用途 详细说明 字符串转换函数 字符串转换为整数 atoi 字符串转换为长整数 atol 字符串转换为浮点数 strtod 字符串转换为长整数 strtol 字符串转换为无符号长整型 strtoul 伪随机序列产生函数 产生随机数 rand 设置随机函数的起动数值 srand 存储管理函数 分配存储器 calloc 释放存储器 free 存储器分配 malloc 重新分配存储器 realloc 环境通信 中止程序 abort 退出程序执行,并清除环境变量 atexit 退出程序执行 exit 读取环境参数 getenv 程序挂起,临时执行一个其他程序 system 搜索和排序工具 二分查找(数据必须已排序) bsearch 快速排序 qsort 整数运算函数 求绝对值 abs 9 div 得到除法运算底商和余数 求长整形底绝对值 labs 求长整形除法的商和余数 ldiv 多字节字符函数 得到多字节字符的字节数 mblen 得到多字节字符的字节数 mbtowc 多字节字符转换 wctomb 多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs 将多字节串转换为字符数组 mcstowbs 字符串处理 本分类的函数用于对字符串进行合并、比较等操作 头文件 string.h 函数列表 函数类别 函数用途 详细说明 字符串拷贝 块拷贝(目的和源存储区不可重叠) memcpy 块拷贝(目的和源存储区可重叠) memmove 串拷贝 strcpy 按长度的串拷贝 strncpy 字符串连接函数 串连接 strcat 按长度连接字符串 strncat 串比较函数 块比较 memcmp 字符串比较 strcmp 字符串比较(用于非英文字符) strcoll 按长度对字符串比较 strncmp 字符串转换 strxfrm 字符与字符串查找 字符查找 memchr 字符查找 strchr 字符串查找 strcspn 字符串查找 strpbrk 字符串查找 strspn 字符串查找 strstr 字符串分解 strtok 杂类函数 字符串设置 memset 错误字符串映射 strerror 求字符串长度 strlen 日期和时间函数 本类别给出时间和日期处理函数 10 头文件 time.h 函数列表 函数类别 函数用途 详细说明 时间操作函数 得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 时间转换函数 得到以ASCII码表示的时间 asctime 得到字符串表示的时间 ctime 得到指定格式的时间 strftime 函数库未来的发展方向 本部分用于说明各类别函数库在将来如何发展。 序号 库类别 头文件 详细说明 1 错误处理 errno.h 2 字符处理 ctype.h 3 地区化 local.h 4 数学函数 math.h 5 信号处理 signal.h 6 输入输出 stdio.h 7 实用工具程序 stdlib.h 8 字符串处理 string.h 13.2 个人库:头文件 前面已经介绍了C语言标准库的存在如何简化了程序开发。然而,标准库还没有广泛到可以处理每个编程需要。自己编写的函数可能经常会在一个不同于最初编写环境的上下文环境中应用。将函数代码复制到其他程序中就可以进行重用,但是也有些不便,尤其是在与访问标准库的方法进行比较后。事实上,可以使用C语言预处理指令#include使得个人库也成为可利用的库。由于C语言允许将源代码文件分别编译,然后在加载和执行之前进行链接,所以可以将个人库作为目标文件提供;使用个人库的程序不需要先编译其中的函数。如果再看一下最初在第1章给出的框图,也就是在图13-1中重新给出的图,就能够更好地理 11 解灰色的矩形和箭头。到目前为止,链接到代码中的“其他目标文件”一直是标准的C语言库。在我们学习了产生自己的库文件后,这些文件也可以作为准备运行程序的一部分提供给链接器。 图13-1 准备运行程序 13.2.1 头文件 产生个人库必须首先产生头文件——包含关于一个库的所有信息的文本文件,该库是编译器在编译一个使用库中定义内容的程序时需要的。确切地说,这类信息可以在像stdio.h、math.h和string.h这样的系统头文件中找到。我们推荐的头文件形式也提供了所有的库用户需要的信息。头文件的常见内容包括 (1) 总结库效用的块注释。 12 (2) #define指令命名常量宏。 (3) 类型定义。 (4) 说明每个库函数目的的块注释和如下形式的声明: extern prototype 头文件(header file) 包含库的接口信息的文本文件,编译器用它翻译使用该库的程序系统,或让用户了解并使用该库。 在函数声明中使用关键字extern是通知编译器该函数的定义会提供给链接器。图13-2给出了第11章中的行星数据类型和运算符的头文件。在图13-3中可以看到一个源文件的开头,该源文件需要该库的软件功能。这里假定头文件命名为planet.h,并且它位于的目录是预处理器首先在其中寻找文件的目录,这些文件名出现在#include后的引号内。这个问题依赖于系统的不同而不同,但是在许多情况下,首先查找的目录就是当前源文件所在的目录。 565. /* planet.h 566. * 567. * abstract data type planet 568. * 569. * Type planet_t has these components: 570. * name, diameter, moons, orbit_time, rotation_time 571. * 572. * Operators: 573. * print_planet, planet_equal, scan_planet 574. */ 575. 576. #define PLANET_STRSIZ 10 577. 578. typedef struct { /* planet structure */ 579. char name[PLANET_STRSIZ]; 580. double diameter; /* equatorial diameter in km */ 581. int moons; /* number of moons */ 582. double orbit_time, /* years to orbit sun once */ 583. rotation_time; /* hours to complete one revolution on 584. axis */ 585. } planet_t; 586. 587. /* 13 588. * Displays with labels all components of a planet_t structure 589. */ 590. extern void 591. print_planet(planet_t pl); /* input - one planet structure */ 592. 593. /* 594. * Determines whether or not the components of planet_1 and planet_2 595. * match 596. */ 图13-2 个人库的拥有数据类型和相关函数的头文件planet.h 597. extern int 598. planet_equal(planet_t planet_1, /* input - planets to */ 599. planet_t planet_2); /* compare */ 600. 601. /* 602. * Fills a type planet_t structure with input data. Integer returned as 603. * function result is success/failure/EOF indicator. 604. * 1 => successful input of planet 605. * 0 => error encountered 606. * EOF => insufficient data before end of file 607. * In case of error or EOF, value of type planet_t output argument is 608. * undefined. 609. */ 610. extern int 611. scan_planet(planet_t *plnp); /* output - address of planet_t structure to fill */ 图13-2(续) 612. /* 613. * Beginning of source file in which a personal library and system I/O library 614. * are used. 615. */ 616. 617. #include /* system's standard I/O functions */ 618. 619. #include "planet.h" /* personal library with planet_t data type and 620. operators */ 621. . . . 图13-3 使用个人库内函数的程序片段 14 到目前为止的程序中已经使用过尖括号(< >),就像 #include 是告诉预处理器头文件可以在系统目录中找到。将头文件名用引号括起,就像 #include "planet.h" 是将它标记为有关属于编程者的库的信息。 在修改源文件时,C预处理器将每个#include行替换为它所指的头文件内容。 在第3章和第6章中首次接触用户定义的函数时,已经强调了在函数开头放置的块注释的重要性以及函数原型和函数参数注释的重要性。在这些信息都获得后,该原型及其相关注释就给想要调用该函数的编程者提供了所需的基本信息:该函数是做什么的、它返回什么类型的值(若有的话),以及它操作什么类型的参数。需要注意的是,这恰好就是放置在头文件中的信息。 将任何问题划分为可处理问题块的一个重要方面就是定义端点,在端点处的解决块合起来就形成了完整的解决方案。在解决方案的两个分离部分之间的公共边界称为接口。头文件的目的是定义库和任何使用该库的程序之间的接口。 13.2.2 头文件设计的忠告 在上面的头文件例子中会发现:定义的常量宏(PLANET_STRSIZ)拥有一个较长的以库名开始的名称。这样的命名规则减小了头文件中与常量相关的名称和程序中另外的常量宏名发生冲突的可能性。 在13.3节中会介绍如何产生个人库的一个实现文件。头(接口)文件和实现文件是个人库中的两个基本的源文件。 练习 自测 1. C预处理器如何确定#include语句中的头文件名是系统库名还是个人库 名, 2. 函数的 和相关的 是编程者为了使用该函数所必 须了解的有关该函数信息的集合。 15 3. 头(接口)文件描述了库函数做 ,而不是它们 完成。 编程 1. 查看第3章的数学库函数表格(表3-1)。定义头文件myops.h,它包含 了函数fabs、sqrt和pow的接口的完整说明。然后在该文件中加入有关f actorial函数的信息(见第5章)。有关于factorial的接口信息的哪些 事情需要函数的实现进行循环,哪些事情需要该实现进行递归, 16
/
本文档为【c语言头文件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索