C标准库的学习笔记(一)

前言

    不要看错!是C的标准库,不是C++的标准库!最近一直在用C++和C#写东西,第一次用C#写项目,还要不停地在C++和C#之间游走,搞的自己眩 晕…。OO的东西写多了,难免怀念起当初用C写小程序时那简单而快乐的日子,于是决定闲暇之余重温标准C,重拾ACM…

    程序写的多了,还是最爱C语言(莫非这才是我想去做嵌入式的真正原因么...)。也许一个优秀的C#程序能让你感受到设计的魅力,但还是灵活的C才能让人 享受语言带来的快乐。当初没好好学的就应该算是C的标准库了,这也让很多同事鄙视自己的C只有业余水平…。既然如此,对C的重温之旅就从C的标准库开始 吧!淘到两本好书:《C语言程序设计:现代方法》(这本书今年好像会出第二版)和《C标准库》,学习之旅就以这两本书为基础了。好,开始…(自我激励 中…)

第零章  初识标准库

1、避免命名冲突

    使用标准库要避免自定义宏(比如自己定义NULL)与文件域的声明(比如自己声明size_t类型) 同标准库冲突。对于宏,需要去了解具体的库才行。对于声明,则有以下规则可循:

    (1) 不要定义有一个下划线和一个大写字母开头或由两个下划线开头的标识符(貌似C#里面好多人喜欢这么干…).

    (2) 不要在函数域以外声明由一个下划线开头的标识符。

    (3) 任何具有外部属性的变量名不要由一个下划线开头。

    事实上,可能的话,还要避免自己定义的函数与标准库的函数重名。

2、 标准库概述

    C语言的标准库按功能被分成了15个部分,每部分都有一个用来 描述的头文件,通过包含相应的头文件就可以使用相应的库函数。这15个标准库的头文件按字母顺序介绍如下:

    (1) <assert.h>:诊断

    可能是标准库里面最简单的一个库了,熟悉VC的人一定会联想到ASSERT宏,是的,这个库提供的就是断言功能,供大家调试程序用的。

    (2) <ctype.h>:字符处理

    包括了字符转换和字符分类的函数。

    (3) <errno.h>:错误

    同样是一个相当简单的库,但却可能是C标准库里面最不受欢迎的一个,它可以返回一个错误码(这是一个左值),用来帮助你在调用某个库函数失败时判断所发生 的错误。

    (4) <float.h>:浮点类型特征

    提供了用来描述浮点值范围及精度等类型特征的宏,做数值计算的话应该会关注这个库。

    (5)<limit.h>:整数类型特征

    与<float.h>相对应,提供了用来描述整数类型和字符类型特征的宏。

    (6)<locale.h>:区域设置

    用来实现包括数字、货币格式、字符集以及日期时间等表示方式的本地化。

    (7)<math.h>:数学计算

    会C的人有谁没接触过这个库吗?提供了大量的数学计算函数。

    (8)<setjmp.h>:非本地跳转

    可以绕过正常的函数返回机制从一个函数跳转到另一个函数,很高阶的应用。

    (9)<signal.h>:信号处理

    可以用来处理中断和运行时异常。

    (10)<stdarg.h>:可变实际参数

    为函数提供了处理可变参数的工具

    (11)<stddef.h>:常用定义

    包含了常用的类型及宏定义

    (12)<stdio.h>:输入输出

    不多说了,提供了大量I/O函数

    (13)<stdlib.h>:常用库

    内容庞杂,所有无法归入其他库的内容都在这里了...

    (14)<string.h>:字符串处理

    提供了字符串操作的函数

    (15)<time.h>:日期和时间

    提供了操纵和显示日期及时间的相关函数

3、学习计划

    《C标准库》的序章里面依照对库的掌握程度将C程序员分为了三类:

    合格的程序员:<ctype.h>,<stdio.h>,<stdlib.h>,<string.h>

    熟练的程序员:<assert.h>,<limits.h>,<stddef.h>,<time.h>

    优秀的程序 员:<float.h>,<math.h>,<errno.h>,<local.h>,<setjmp.h>,<signal.h>,<stdarg.h>

    学习计划不言自明了吧。

 

英文版:The Standard C Library 内容简介 《C标准库》集中讨论了C标准库,全面介绍了ANSI/ISOC语言标准的所有库函数。书中通过引用ISOC标准的相关部分,详细讲解了每一个库函数的使用方法,并通过示例描述了其实现细节,且给出了实现和测试这些函数的完整代码。此外,每章结尾附有不同难度的习题,帮助读者巩固和提高。通过此书,读者将会更好地使用C标准库,并学会如何设计和实现库。 《C标准库》结构清晰,内容权威,阐述精辟,对于各层次C程序员和相关专业高校师生都是一本优秀的参考书。 编辑推荐 C标准库“圣经”,提供完整源代码,全面深入阐述库函数的实现与运用。C程序员必备参考书。《C标准库》是由世界级C语言专家编写的C标准库经典著作。英文版已经重印十多次,影响了几代程序员。《C标准库》结合C标准的相关部分,精辟地讲述了每一个库函数的使用方法和实现细节,这正是一个真正的C程序员所必须掌握的。更重要的是,书中给出了实现和测试这些函数的完整源代码。可以让你更深入地学习C语言。不仅如此,《C标准库》还讨论了一些即使是最有经验的C程序员通常也不熟悉的知识,比如国际化和独立于区域设置的程序的编写、与构建库相关的概念和设计思想。 作者简介 作者:(美国)P.J.Plauger 译者:卢红星 徐明亮 霍建同 P.J.Plauger,世界著名的软件技术专家,曾任ISO C标准委员会主席,C/C++User's Journal主编,现任ISO C++标准委员会主席。他是C/C++标准库开发领域的大师。所开发的Dinkumware标准库应用广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值