首页>参考读物>计算机科学与技术>软件与程序设计

C语言核心技术
作者 : Prinz Prinz; Tony Crawford
译者 : O’Reilly Taiwan公司
出版日期 : 2007-08-22
ISBN : 7-111-22050-3
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 591
开本 : 16开
原书名 :
原出版社: O’Reilly
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

C程序员在编写程序时手头一定要有这本书。在这本书中,C 语言专家 Peter Prinz和Tony Crawford为你提供大量的编程参考信息。全书叙述清晰,语句简洁,分析深刻。本书主题包括:

  ● C 语言的语法  ● GNU编译器选项
  ● 标准链接库函数 ● GDB和make
  ● 预处理指令    ● C99特色和扩充
  
  本书内容丰富,总共包含21章,能够让你深刻了解C 语言关键概念,比如类型转换、动态内存管理、指针处理等。想知道 GNU make 或 GNU 调试器的细节吗?本书开辟专门的章节来讲解。一书在手,程序开发会更加顺利!Peter 和 Tony 所编写的这本书会成为C语言程序员必备的工作利器!

  “这本书覆盖你希望知道的关于 C语言的一切知识。本书作者完成了一项相当杰出的任务,把语言、标准链接库以及一些重要工具的用法都包含其中。”
                       —Kyle Loudon,Yahoo!资深工程师

  “本书精选的范例非常有利于读者学习,这比苍白的语言叙述更加有效。这本书不会被放在书架上落灰尘,因为你需要常常翻阅它。”
                       —Matthias Kalle Dalheimer,Klaralvdalens Datakonsult AB,董事长兼首席执行官

  “25年来我始终使用C语言编写程序,这本书是我见过的这方面最清楚,最完整的书。所有知识点都使用准确的语言和有序的方式进行描述,这是程序员希望看到的。”
                       —Matt Crawford,Wide Area Systems,Fermilab,集团领导人

  “结合阅读和参考双重功效,你不能错过这本书。这本书可以让你与时俱进,让你的 C 语言编程能力紧跟最新的C99 标准。”
                        —Dave Kitabjian,NetCarrier, Inc., 软件开发经理

图书特色

图书前言

这本书是 “C编程语言”和“C语言链接库”的完整参考手册。这本书的目的是提供一本方便、可靠的手册,辅助日常的编程工作。本书描述C语言的所有元素,并介绍它们的用法。
  本书讨论范围主要针对1999年发布的C语言国际标准“ISO/IEC 9899:1999”,并包含技术修正“2001年的TC1”和“2004年的TC2”。此标准被称为C99,是“ISO/IEC 9899:1990标准”和“1995基准增补1(ISO/IEC 9899/AMD1:1995)”的扩充。1990 ISO/IEC标准对应于ANSI标准X3.159,是1989年底核准的标准,常常被称为ANSI C或C89。
  并非所有的编译器和标准链接库运行版本都完全支持1999 C标准的众多新特性。对于1999的扩充部分(比如早期版本没有的函数),本书在介绍时会特别标上“C99”标记。
  本书并非C语言程序设计的入门书。虽然本书涵盖C语言基础,但是本书的编排和组织方式并不适合初学者。如果你是C语言的初学者,我们假设你至少读过任何一本C语言的入门书,或者至少熟悉相关的语言(例如Java或C++),这样才适合阅读本书。
  本书的组织方式
  本书分成三部分。第一部分使用相当严谨的术语表介绍C语言;第二部分描述标准链接库;第三部分介绍GNU软件包中常用的编译和测试工具。
  第一部分
  第一部分介绍C语言的基础知识,包括第1章到第14章。在第1章之后,讲解C语言的一般概念和元素,每章都有一个主题,例如数据类型、语句和指针。主题出现的次序是依据基本概念的学习次序来安排的,学习后面的主题需要前面的主题作为基础。比方说,先介绍数据类型,然后介绍表达式和运算符,接着介绍语句。有时候需要参考后面的章节,以了解一些相关的细节。例如,在第5章提前进行关于指针和数组的讨论是有必要的(第5章包含表达式和运算符),不过关于指针和数组的详细介绍在第8章和第9章。
  第1章,语言基础
  描述C语言的特性,以及如何编写和编译C程序。本章介绍一些基本概念,比如翻译单元、字符集、标识符。
  第2章,数据类型
  全面介绍C语言数据类型,并讨论基本数据类型、void类型和枚举类型。
  第3章,字面值
  描述数字常量、字符常量、字符串字面值(包括转义符)。
  第4章,类型转换
  描述显式和隐式的类型转换,包括整数提升和通常的算术转换。
  第5章,表达式和运算符
  讨论表达式的计算、所有的运算符,以及和运算符兼容的操作数。
  第6章,语句
  讨论C语言的语句,比如语句块、循环、跳转。
  第7章,函数
  描述函数定义和函数调用,包括递归函数和inline函数。
  第8章,数组
  描述定长数组和变长数组,包含字符串、数组初始化、多维数组等。
  第9章,指针
  描述对象指针和函数指针的定义和使用方法。
  第10章,结构、联合、位字段
  描述在“用户自定义数据类型”的数据组织方式。
  第11章,声明
  讲解声明的一般语法、标识符链接、对象生存周期。
  第12章,动态内存管理
  讨论标准链接库的动态内存管理函数,实现一个二叉树以演示这些函数的使用方法。
  第13章,输入和输出
  描述输入和输出的概念,以及标准I/O链接库的使用方式。
  第14章,预处理指令
  描述宏的定义和使用方法、条件编译,以及所有其他的预处理指令和操作。
  第二部分
  第二部分包含第15章到第17章,内容是C语言的标准链接库。全面介绍标准头文件,以及函数的使用细节。
  第15章,标准头文件
  描述标准头文件和用途,以及所有标准链接库的宏和类型定义。
  第16章,函数概述
  根据应用程序方式,概括性介绍标准链接库的函数,比如数学函数、时间和日期函数等。
  第17章,标准链接库函数
  按照字母排列顺序详细描述每个标准链接库函数,并使用范例演示每个函数的用法。
  第三部分
  本书第三部分介绍C语言程序员使用的基本工具:编译器、make工具程序和调试器。这里所描述的工具都属于GNU软件包。
  第18章,GCC编译器
  讨论广泛使用的GCC编译器给C程序员提供哪些能力。
  第19章,使用make创建C程序
  讲解如何使用make程序自动编译大型程序。
  第20章,使用GDB调试C程序
  介绍如何使用GNU调试器执行程序,以及如何分析程序的执行行为以找出逻辑错误。
  进一步提高
  本书中许多地方都介绍进一步提升编程能力所需阅读的参考资料,除此之外,还有一些资源站点提供更多细节信息,诸如国际C语言标准的官方网站http://www.open-std.org/jtc1/sc22/wg14提供最新的C99标准,以及目前该工作小组正在执行的计划。
  如果读者的兴趣不限于C语言的是什么和怎么样,也想知道为什么,WG14的网站提供的“C99 Rationale”链接解释许多设计的源由。这份文件是不规范的,只是描述标准化进程的起因和限制。C89 Rationale的网址是http://www.lysator.liu.se/c/rat/title.html。如果想知道C语言是如何“一开始变成那样的”,不可错过C语言原创者Dennis Ritchie的一篇文章“The Development of the C Language”(C语言开发),也可以参考他在贝尔实验室时期的其他历史文献,网址是http://cm.bell-labs.com/cm/cs/who/dmr。
  如果想了解浮点数相关的细节信息(这超出C语言的范畴),你可以阅读David Goldberg的详细阐述,“What Every Computer Scientist Should Know About Floating-Point Arithmetic”,目前存放该文件的网址是http://docs.sun.com/source/806-3568/ncg_goldberg.html。
  建议与评论
  本书使用以下的字体规范:
  斜体字(Italic)
  用于表示目录和文件名。范例中注解需强调的部分也会以斜体字表示。
  粗体字(Bold)
  表示 C语言关键字,以及第一次提及的新名词和概念。
  等宽字(constant width)
  表示程序和程序的元素,以及范例中显示文件内容或命令输出。在正文中引用范例或程序片段的单词或项目也以定长字表示。
  等宽粗体字(constant width bold)
  用来在范例中显示命令或者其他需要由使用者逐字输入的文字。
  等宽斜体字(Constant width italic)
用在例子中表示应视情况替换的变量(例如,变量filename应该用某个真实的字符串来替换)。
  注意: 表示小技巧、建议、注意事项。
  警告: 表示要特别小心的地方。
  批评和建议
  虽然我们已尽最大可能测试和验证本书内容,但你仍可能发现书中所描述的某种功能实际上已经改变了,或者甚至是我们搞错了。请将你所发现的错误,还有对本书未来版本的任何宝贵意见告诉我们。来信请寄:
  美国:
  O’y Media, Inc.
  1005 Gravenstein Highway North
  Sebastopol, CA 95472
  中国:
  100080北京市海淀区知春路49号希格玛公寓B座809室
  奥莱理软件(北京)有限公司
  请以电子邮件的方式与我们联系:
  hzjsj@hzbook.com
  bookquestions@oreilly.com
  info@mail.oreilly.com.cn
  O’Reilly 的每一本书都有专属网页,你可以在此找到关于本书籍的相关信息,包括范例程序的下载、勘误表与相关资源的链接。
  http://www.oreilly.com/catalog/cinanut/ (本书英文版的网页)
  http://www.oreilly.com.cn/book.php bn=978-7-111-22050-3(本书中文版的网页)
  http://www.hzbook.com(本书中文版的网页)
  要想了解O’Reilly 图书、会议、资源中心以及O’Reilly Network的更多信息,请访问O’Reilly网站:
  http://www.oreilly.com
  http://www.oreilly.com.cn

封底文字

C程序员在编写程序时手头一定要有这本书。在这本书中,C 语言专家 Peter Prinz和Tony Crawford为你提供大量的编程参考信息。全书叙述清晰,语句简洁, 分析深刻。本书主题包括: ● C 语言的语法 ● GNU编译器选项 ● 标准链接库函数 ● GDB和make ● 预处理指令 ● C99特色和扩充 本书内容丰富,总共包含21章,能够让你深刻了解C 语言关键概念,比如类型转换、动态内存管理、指针处理等。想知道 GNU make 或 GNU 调试器的细节吗?本书开辟专门的章节来讲解。一书在手,程序开发会更加顺利!Peter 和 Tony 所编写的这本书会成为C语言程序员必备的工作利器! “这本书覆盖你希望知道的关于 C语言的一切知识。本书作者完成了一项相当杰出的任务,把语言、标准链接库以及一些重要工具的用法都包含其中。” —Kyle Loudon,Yahoo!资深工程师 “本书精选的范例非常有利于读者学习,这比苍白的语言叙述更加有效。这本书不会被放在书架上落灰尘,因为你需要常常翻阅它。” —Matthias Kalle Dalheimer,Klaralvdalens Datakonsult AB,董事长兼首席执行官 “25年来我始终使用C语言编写程序,这本书是我见过的这方面最清楚,最完整的书。所有知识点都使用准确的语言和有序的方式进行描述,这是程序员希望看到的。” —Matt Crawford,Wide Area Systems,Fermilab,集团领导人 “结合阅读和参考双重功效,你不能错过这本书。这本书可以让你与时俱进,让你的 C 语言编程能力紧跟最新的C99 标准。” —Dave Kitabjian,NetCarrier, Inc., 软件开发经理

作者简介

Prinz Prinz; Tony Crawford:暂无简介

译者简介

O’Reilly Taiwan公司:暂无简介

图书目录

前言 1
第一部分 语言
第1章 C语言基础 9
C语言特性 9
C程序的结构 10
源代码文件 12
注释 13
字符集 14
标识符 19
C编译器运行原理 23
第2章 数据类型 26
数据类型分类 26
整数数据类型 27
浮点数据类型 32
复数浮点数据类型(C99) 34
枚举数据类型 35
void数据类型 36
第3章 字面值 39
整数常量 39
浮点常量 40
字符常量 42
字符串字面值 44
第4章 类型转换 47
算术类型的转换 48
非算术类型的转换 55
第5章 表达式和运算符 62
计算表达式 63
运算符全面剖析 66
常量表达式 88
第6章 语句 90
表达式语句 90
语句块 91
循环 92
选择语句 96
无条件跳转 99
第7章 函数 103
函数定义 103
函数声明 109
函数如何被执行 111
指针当作自变量和返回值 111
Inline函数 112
递归函数 114
可选性自变量 115
第8章 数组 117
定义数组 117
存取数组元素 119
初始化数组 120
字符串 122
多维数组 123
数组作为函数的自变量 126
第9章 指针 128
声明指针 128
指针的运算 131
指针和类型的限定符 135
“数组的指针”和“指针的数组” 138
指向函数的指针 142
第10章 结构、联合、位字段 144
结构 144
联合 154
位字段 155
第11章 声明 158
一般语法 158
类型名称 165
typedef声明 166
标识符的链接 168
对象的生存周期 169
初始化 170
第12章 动态内存管理 172
已分配内存的特性 174
调整内存大小和释放内存 174
通用的二叉树 176
特性 176
实践 177
第13章 输入和输出 186
流 186
文件 187
打开和关闭文件 189
读操作和写操作 191
文件随机访问 208
第14章 预处理指令 211
插入头文件的内容 212
定义和使用宏 214
条件式编译 221
定义行号 222
产生错误信息 223
#pragma预处理指令 223
_Pragma运算符 224
预定义的宏 225
第二部分 标准链接库
第15章 标准头文件 229
使用标准头文件 229
标准头文件的内容 232
第16章 函数简介 254
输入和输出 254
数学函数 255
字符分类和转换 262
字符串处理 264
多字节字符 265
在数字和字符串之间转换 266
搜索和排序 267
内存区域处理 267
动态内存管理 268
日期和时间 268
进程控制 269
国际化 271
非局部性跳转 271
调试 272
错误信息 273
第17章 标准链接库函数 274
第三部分 基本工具
第18章 GCC编译器 505
GNU 编译器集合 505
获取和安装GCC 506
使用GCC编译C程序 506
C 方言 514
编译器警告 515
优化 517
调试 520
剖析 520
选项和环境变量汇总 521
第19章 使用make创建C程序 526
目标、前提和命令 526
Makefile 527
注释 534
伪目标 541
其他目标属性 542
宏 543
函数 544
预处理指令 548
执行make 551
第20章 使用GDB调试C程序 559
安装GDB 559
调试过程范例 560
启动GDB 564
使用GDB命令 568

教学资源推荐
作者: Brian W.Kernighan
作者: 程学先 林姗 程传慧
作者: [美]梁勇(Y.Daniel Liang) 著
作者: (英)Lawrence C. Paulson
参考读物推荐
作者: Steve Cook; Gareth Jones; Stuart Kent Alan Cameron Wills
作者: Bruce Eckel