作者:明日科技
出版社:清华大学出版社
格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT
C语言函数参考手册(无赠送光盘)试读:
前言
PrefaceC语言作为当前程序开发中最流行的编程语言之一,以其简单、高效、快捷、方便的特性吸引了大批用户。根据笔者使用C语言的经验,相信对C语言程序开发人员来说,C语言函数参考手册是必需的。因此,笔者编写了本书,希望能真正帮助C语言程序开发人员在编程时实现易查、易学、易用,并使其成为程序开发必备的工具书。本书内容
本书按照C语言库函数的头文件进行分类,每个头文件为一章内容,分别介绍了对应头文件中常用的C语言函数。对每个头文件中的函数按照字母进行排序,其中每个函数都按照功能、语法来介绍,在每个方法后都有相关的示例。本书特点即查、即学、即用
本书将查、学、用结合为一体,读者能够使用本书进行快速查询和快速应用,既是实用的工具书,也是学习的参考书。字母排序,快捷搜索
本书在讲解C语言函数时按照头文件进行分类,用户在使用时可以根据头文件快速地缩小查找范围,并且每个头文件以字母顺序进行排序,以便读者更快、更准确地查找相关内容。内容全面,示例丰富
本书内容涵盖了学习C语言应用的各方面技术。为了便于读者快速掌握每个知识点,每个知识点都给出对应的一个或多个示例,并提供了详尽的注释。精彩栏目,贴心提醒
本书根据需要在各章使用了“注意”、“说明”和“技巧”等小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念,并轻松地掌握个别技术的应用技巧。本书配套资源
本书提供了内容丰富的配套资源,包括源程序、素材,以及模块库、案例库、题库、素材库等多项辅助内容,读者朋友可以通过如下方式获取。
第1种方式:(1)登录www.tup.com.cn,在网页右上角的搜索文本框中输入本书书名(注意区分大小写和留出空格),或者输入本书关键字,或者输入本书ISBN号(注意去掉ISBN号间隔线“-”),单击“搜索”按钮。(2)找到本书后单击超链接,在该书的网页下侧单击“网络资源”超链接,即可下载。
第2种方式:
访问本书的新浪微博:C语言图书,找到配套资源的链接地址进行下载。读者对象
本书适合以下人群阅读。 初学编程的自学者 大中专院校的老师和学生 初、中级程序开发人员 参加实习的程序员 编程爱好者 相关培训机构的老师和学员 程序测试及维护人员读者服务&本书勘误
读者在使用本书过程中遇到的所有问题,均可通过以下方式联系我们。
1.新浪微博:C语言图书。
及时发布读者答疑、本书勘误、配套资料更新等内容。
2.腾讯QQ:4006751066。
3.登录网站:www.mingribook.com,在论坛、勘误发布、读者纠错、技术支持、读者之家等栏目中的相关模块中提问、留言或查看。本书作者
本书由明日科技组织编写,主要编写人员有王雪、赵永发、孙秀梅、曹飞飞、朱晓、陈丹丹、王国辉、张振坤、高春艳、王小科、赵会东、李继业、赛奎春、潘凯华、刘欣、李慧、杨丽、刘龄龄、陈英、肖鑫等。在编写本书的过程中,我们以科学、严谨的态度,力求精益求精,但错误、疏漏之处在所难免,敬请广大读者批评指正。编者第1章动态内存管理函数:alloc.h动态内存管理函数在程序执行过程中为程序中的数据分配内存,这些函数都通过指针来指明内存地址。最常用的动态内存管理函数是stdlib中的malloc()、calloc()和free(),这组函数在同一数据段中分配内存,当程序中动态分配的内存很多,以至于跨跃数据段分配时,用到本章中的函数,其实用性稍差。本章程序不能用VC编译,所有程序均在TC 2.0中编译运行。1.1brk()——重置数据段存储空间函数
brk()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\01
brk()函数用于通过重新设置数据段结束位置,改变数据段存储空间大小。
语法
int brk(void *endds);
brk()函数的语法参数说明如下:
参数endds为重新设置的数据段结束地址。
brk()函数的返回值:函数成功执行时返回值为0,不成功则为-1。
示例
本示例演示读取文本文件中的所有整数。使用malloc()分配MAX个整数空间,用于保存数据,执行中如果MAX个空间用完而文件中还有未读完的数据,则用brk()函数重新设置数据段存储空间。
程序执行前先在D:\下用记事本建立文件aa.txt,输入1 2 3 4 5 6 7 8(每个数之间用一个空格分开)。其具体代码如下:
运行结果如图1.1所示。图1.1 brk()函数的执行结果(文件中只有8个数)1.2coreleft()——获取未使用内存大小函数
coreleft()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\02
coreleft()函数用于获取未使用内存空间大小。
语法
unsigned coreleft(void):
coreleft()函数没有参数。
coreleft()函数的返回值:未使用内存的大小。
示例
本示例演示通过brk()函数改变动态分配空间大小,在改变前后用coreleft()函数输出剩余内存空间。其具体代码如下:
运行结果如图1.2所示。图1.2 用coreleft()函数查看剩余内存指点迷津
brk()函数执行前后剩余空间相差996,而不是1000,因为brk(ptr+1000)前4个字节是已用空间。1.3farcalloc()——申请远堆空间函数
farcalloc()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\03
farcalloc()函数用于申请远堆空间,每次分配nunits个大小为 unitsz的空间。
语法
void far * farcalloc(unsigned long nunits, unsigned long unitsz);
farcalloc()函数的语法参数说明如下:
参数nunits为分配数据块数。
参数unitsz为每个数据块的字节数。
farcalloc()函数的返回值:成功执行返回分配空间的地址,不成功则返回NULL。
示例
本示例演示用farcalloc()函数分配远堆空间。其具体代码如下:
运行结果如图1.3所示。图1.3 farcalloc()函数的执行结果1.4farcoreleft()——获取远堆空闲存储空间大小函数
farcoreleft()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\04
farcoreleft()函数用于获取远堆中空闲存储空间的大小。
语法
long farcoreleft(void);
farcoreleft()函数没有参数。
farcoreleft()函数的返回值:远堆栈中空闲存储空间大小。
示例
本示例演示用farcalloc()函数两次分配远堆空间,用farcoreleft()函数查看远堆剩余空间。其具体代码如下:
运行结果如图1.4所示。图1.4 farcoreleft()函数的执行结果1.5farfree()——释放远堆空间函数
farfree()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\05
farfree()函数用于释放远堆空间。
语法
void farfree(void);
farfree()函数没有参数。
farfree()函数没有返回值。
示例
本示例演示用farfree()函数释放远堆空间,释放前后用farcoreleft()函数查看剩余空间。其具体代码如下:
运行结果如图1.5所示。图1.5 farfree()函数的执行结果1.6farmalloc()——申请远堆空间函数
farmalloc()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\06
farmalloc()函数用于远堆存储块分配空间。与farcalloc()函数相似,但其功能更简单,farcalloc()一次分配n段大小为size的单元;farmalloc()一次分配1段大小为size的单元。
语法
void far * farmalloc(unsigned long size);
farmalloc()函数的语法参数说明如下:
参数size为分配空间的字节数。
farmalloc()函数的返回值:成功执行返回分配空间的地址,不成功则返回NULL。
示例
本示例演示用farmalloc()函数分配远堆空间。其具体代码如下:
运行结果如图1.6所示。图1.6 farmalloc()函数的执行结果1.7farrealloc()——远堆存储块空间调整函数
farrealloc()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\07
farrealloc()函数用于调整已分配内存的位置,而不改变其空间大小。
语法
void far *farrealloc(void far *oldblock, unsigned long nbytes);
farrealloc()函数的语法参数说明如下:
参数oldblock为原内存块地址。
参数nbytes为调整量。
farrealloc()函数的返回值:成功执行时返回新地址,失败时则返回NULL。
示例
本示例演示用farrealloc()函数调整内存块位置。调整前后位置有改变,而占用空间大小不变。其具体代码如下:
运行结果如图1.7所示。图1.7 farrealloc()函数的执行结果1.8sbrk()——增加数据段存储空间函数
sbrk()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\01\08
sbrk()函数与brk()函数功能相似,用于改变数据段存储容量。不同的是,sbrk()函数直接说明要增加的容量,而brk()函数通过改变结束位置改变数据段容量。
语法
char *sbrk(int incr);
sbrk()函数的语法参数说明如下:
参数incr为增加字节数。
sbrk()函数的返回值:函数成功执行时返回值为改变前的值,不成功则为-1。
示例
本示例演示用sbrk()函数增加动态内存空间,用coreleft()函数查看增加前后的剩余空间大小。其具体代码如下:
运行结果如图1.8所示。图1.8 sbrk()函数的执行结果第2章DEBUG相关函数库:assert.h程序执行时总是不可避免地出现意外出错的情况,这些意外出错有的可以由程序做出补救,还有一些无法补救。比如:程序要删除一个文件,而文件正被其他用户访问(其他用户可能是你的程序的其他部分),导致文件不可删除,这样删除文件语句本身意外出错,如果下面再出现新建同名文件的语句也会出错。大多数情况下,意外的错误导致程序无法正常执行,要终止程序。assert.h文件只有一个函数assert(),该函数对程序中的意外出错提供了强有力的支持。assert()——错误判断函数
assert()函数
实用程度:★★☆☆☆
实例位置:配套资源\SL\02\01
assert()函数用于判断可能的错误是否发生,如果发生,程序终止执行;不发生则正常执行。函数在有可能出错的地方测试一个条件,当条件成立时,表示发生错误。
语法
void assert(int test);
assert()函数的语法参数说明如下:
参数test为待测试表示式。
assert()函数没有返回值。
示例
本示例演示通过一个数除零引发错误。当为b输入0时,结果如图2.1所示,其他数据正常运算。其具体代码如下:图2.1 assert()函数条件不成立时的执行结果
试读结束[说明:试读内容隐藏了图片]