C语言参考手册(原书第5版)
作者 : [美]Samuel P.Harbison Ⅲ,Guy L.Steele
译者 : 邱仲潘
丛书名 : 计算机科学丛书
出版日期 : 2003-08-01
ISBN : 7-111-12219-4
定价 : 39.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 391
开本 : 16开
原书名 : C: A Reference Manual
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是经典C语言参考手册的最新版,在强调正确性、可移植性和可维护性的基础上,对C语言的具体细节、运行库以及C语言编程风格做了完整、准确的描述。
本书涵盖了传统C语言、C89、C95、C99等所有C语言版本的实现,同时讨论了C++与C语言兼容的部分。全书自上而下介绍了C语言的词法结构、预处理器、声明、类型表达式、语句、函数和运行库,是所有C语言编程人员必备的参考书。

  这本畅销的权威参考手册对C语言的基本概念和运行库提供了完整的描述,同时还强调
了以正确性、可移植性和可维护性为根本出发点的良好的C语言编程风格,被国外众多高校
广泛采用为教材或教学参考书,本书描述了C语言各个版本的所有细节,是C语言编程人员
和实现者惟一必备的参考手册。最新的第5版经过修订和更新,融入了最新C语言标准ISO IEC
9899:1999的完整描述,包括强大的语言扩展和新的函数库。
  Web站点www.CAReferenceManual.com中包含了本书较长示例的源代码、对C语言争论
点的深入讨论、最新ISO IEC语言标准修订以及其他重要C语言资源的链接。
本书作为参考手册,提供了非常详细、清晰的c语言描述:
●标准C语言(1999):是标准C语言的新版本,支持复数类型与布尔类型、变长数组、精确浮点
 数编程和具有可移植性与国际化的新的库函数
●标准以C语言(1989):当前大多数编程人员使用的C语言版本
●传统C语言:1990年之前常用的版本,还有几百万行代码正在使用
●C++兼容C语言:可以同时在C语言与C++中使用的代码
●所有C语言版本的完整运行库

图书特色

Samuel P.Harbison III 于卡内基—梅隆大学获得计算机科学博士学位,现
任Carlow学院的计算机科学系副教授。他曾就职于德州仪器和Tartan公司,还曾经担任C++程序设计语言
标准化国际工作组的主席。他的研究领域涉及程序设计语言和软件开发工具。
Guy L.Steele Jr.于MIT获得计算机科学和人工智能博士学位,曾任卡内基-梅隆大学
计算机科学系副教授,还曾就职于Tartan实验室和Thinking Machines公司,1994年加入SUN公司,主要从事并
行算法、实现策略、软件支持等方面的研究以及Java语言规范的制定。他曾是X3J11(C语言)标准委员会、
X3J3(Fortran)标准委员会成员,现在还担任X3J13(Common Lisp)标准委员会的主席。鉴于他在Lisp语言词法
方面的贡献,1988年ACM授予他Grace Murray Hopper奖。他于1990年被选为美国人工智能学会会士,于1994
年被选为ACM会士。他还曾任1990年ACM图灵奖评审委员会的主席。

图书前言

前   言
本书作为一本C语言参考手册,对C语言的基本概念和运行库提供了完整和准确的描述,同时还强调了以正确性、可移植性和可维护性为根本出发点的良好的编程风格。
我们希望读者已经了解基本编程概念,并且很多读者已经可以用C语言熟练编程。为了保持参考手册的格式,我们自下而上介绍C语言的词法结构、预处理器、声明、类型、表达式、语句、函数和运行库。书中包括许多交叉引用,使读者可以从任何地方入手。
第5版完整地介绍了最新的国际C语言标准ISO/IEC 9899:1999(C99),明确指出语言本身和库函数中哪些特性是C99新增的,指出C99与原有C89标准的不同之处。这是目前惟一一本适用于所有主流C语言版本的参考书:包括传统C语言、1989年C标准、1995年对C89的修改与补充以及当前的C99标准。本书还介绍了标准C语言和标准C++的原始C语言子集。尽管C99中有许多新的信息,但我们没有对本书的章节组织做很大的修改,这样就可以使熟悉旧版的读者能够顺利找到所要的材料。
本书最初源于我们在Tartan公司的工作—为从微机到大型机的一系列计算机开发C语言编译器系列。我们要求编译器文档齐全,提供精确和有用的错误诊断信息并能产生有效的目标代码。一个经过某一编译器正确编译的C语言程序应能在硬件差别允许的前提下,在所有其他编译器中正确编译。
1984年,尽管C语言已经非常普及,但还没有一本书能够非常精确地介绍C语言,以便指导我们设计新的编译器。同样,当时的文档对编程人员和客户也不够精确,人们希望利用编译器比采用当时已经习惯的方法可以更彻底地分析C语言程序。本书特别注意影响程序清晰度、目标代码有效性和不同环境中程序移植性的语言特性。
Web站点
欢迎读者访问本书的Web站点CAReferenceManual.com,其中包括了书中示例的代码、更深入的讨论、澄清的问题以及更多C语言资源的链接。
致谢
在第5版准备过程中,特别感谢原NCITS Jll主席Rex Jaeschke、芬兰赫尔辛基的Antoine Trux以及爱迪生设计集团创始人Steve Adamczyk的帮助。
对于本书的以前版本给予过帮助的人员包括Jeffrey Esakov、Alan J.Filipski、Frank J. Wagner、Debra Martin、P. J. Plauger以及Steve Vinoski。其他提供过帮助的人员包括Aurelio Bignoli、Steve Clamage、Arthur Evans、Jr.,Roy J. Fuller、Morris M. Kessan、George V.Reilly、Mark Lan、Mike Hewett、Charles Fischer、Kevin Rodgers、Tom Gibb、David Lim、Stavros Macrakis、Steve Vegdahl、Christopher Vickery、Peter van der Linden和Dave Wilson。还要感谢Michael Angus、Mady Bauer、Larry Breed、Sue Broughton、Alex Czajkowski、Robert Firth、David Gaffney、Steve Gorman、Dennis Hamilton、Chris Hanna、Ken Harrenstien、Rex Jaeschke、Don Lindsay、Tom MacDonald、Peter Nelson、Joe Newcomer、Keyin Nolish、David Notkin、Peter Plamondon、Roger Ray、Larry Rosler、David Spencer以及Barbara Steele。
本书最初的一些示例程序参考了下列著作中的算法:
Beeler, Michael, Gosper, R. William, and Schroeppel, Richard, HAKMEM,AI Memo 239 (Massachusetts Institute of Technology Artificial Intelligence Laboratory,1972年2月);
Bentley, Jon Louis, Writing Efficient Programs(Prentice-Hall,1982);
Bentley, Jon Louis, “Programming Pearls”(monthly column appearing in Communications of the ACM beginning August 1983);
Kernighan, Brian W., and Ritchie, Dennis M., The C Programming Language(Prentice-Hall,1978);
Knuth, Donald E., The Art of Computer Programming Volumes 1-3(Addison-Wesley,1968,1969,1973,1981);
Sedgewick, Robert, Algorithms(Addison-Wesley,1983).
感谢这些作者的灵感。
还有一点需要说明,Guy Steele先生工作繁忙,无法在新版本中参与更多工作。虽然书中仍然处处体现出他对C语言精辟的分析,但新版本中的任何新问题,都不能再由他负责。
《C语言参考手册》一书已经超过17岁,感谢所有读者多年来对她的关爱。
Sam Harbison
于宾夕法尼亚州匹兹堡市
harbison@CAReferenceManual.com

译者简介

邱仲潘:暂无简介

图书目录

出版者的话
专家指导委员会
前言
第一部分  C语言
第1章  简介 1
1.1  C语言的演变 1
1.1.1  传统C语言 1
1.1.2  标准C语言(1989) 1
1.1.3  标准C语言(1995) 2
1.1.4  标准C语言(1999) 2
1.1.5  标准C++语言 2
1.1.6  本书内容 3
1.2  使用C语言的何种方言 3
1.3  C语言编程概述 3
1.4  符合性 4
1.5  语法符号 5
第2章  词法元素 6
2.1  字符集 6
2.1.1  执行字符集 7
2.1.2  空白符与行终结符 7
2.1.3  字符编码方式 8
2.1.4  三字符组 8
2.1.5  多字节字符与宽字符 9
2.2  注释 10
2.3  记号 11
2.4  运算符与分隔符 12
2.5  标识符 12
2.6  关键字 14
2.7  常量 15
2.7.1  整型常量 15
2.7.2  浮点型常量 18
2.7.3  字符型常量 20
2.7.4  字符串型常量 21
2.7.5  转义符 23
2.7.6  字符转义符 24
2.7.7  数字转义符 25
2.8  C++兼容性 25
2.8.1  字符集 25
2.8.2  注释语句 26
2.8.3  运算符 26
2.8.4  标识符与关键字 26
2.8.5  字符型常量 26
2.9  字符集、指令集和编码方式 26
2.10  练习 27
第3章  C语言预处理器 29
3.1  预处理器命令 29
3.2  预处理器词法规则 29
3.3  定义和替换 30
3.3.1  对象式宏定义 31
3.3.2  函数式宏定义 31
3.3.3  重新扫描宏表达式 33
3.3.4  预定义宏 34
3.3.5  取消宏定义与重新定义宏 36
3.3.6  宏扩展中的优先级错误 36
3.3.7  宏参数的副作用 37
3.3.8  将记号转换为字符串 37
3.3.9  宏扩展中的记号合并 38
3.3.10  宏中的可变参数表 39
3.3.11  其他问题 39
3.4  文件包含 40
3.5  条件编译 41
3.5.1  #if、#else与#endif命令 41
3.5.2  #elif命令 42
3.5.3  #ifdef与#ifndef命令 43
3.5.4  条件命令中的常量表达式 44
3.5.5  defined运算符 45
3.6  显式的行编号 45
3.7  杂注指令 46
3.7.1  标准杂注 46
3.7.2  标准杂注的位置 46
3.7.3  _Pragma运算符 47
3.8  错误指令 47
3.9  C++兼容性 47
3.10  练习 48
第4章  声明 50
4.1  声明组织 50
4.2  术语 51
4.2.1  作用域 51
4.2.2  有效性 52
4.2.3  向前引用 52
4.2.4  名称重载 53
4.2.5  重复声明 54
4.2.6  重复有效性 54
4.2.7  生存期 55
4.2.8  初值 55
4.2.9  外部名称 56
4.2.10  编译名称 57
4.3  存储类说明符与函数说明符 57
4.3.1  默认存储类说明符 58
4.3.2  存储类说明符举例 58
4.3.3  函数说明符 59
4.4  类型说明符与限定符 59
4.4.1  默认类型说明符 60
4.4.2  忽略声明符 61
4.4.3  类型限定符 61
4.4.4  const类型限定符 62
4.4.5  volatile类型限定符与序列点 63
4.4.6  restrict类型限定符 65
4.5  声明符 66
4.5.1  简单声明符 66
4.5.2  指针声明符 67
4.5.3  数组声明符 67
4.5.4  函数声明符 69
4.5.5  复合声明符 70
4.6  初始化语句 71
4.6.1  整数变量初始化语句 72
4.6.2  浮点数变量初始化语句 73
4.6.3  指针变量初始化语句 73
4.6.4  数组类型变量初始化语句 74
4.6.5  枚举类型变量初始化语句 76
4.6.6  结构类型变量初始化语句 76
4.6.7  联合变量初始化语句 77
4.6.8  省略花括号 77
4.6.9  指定初值 77
4.7  隐式声明 79
4.8  外部名称 79
4.8.1  初始化语句模型 79
4.8.2  省略存储类模型 79
4.8.3  公用模型 80
4.8.4  混合公用模型 80
4.8.5  总结与建议 80
4.8.6  未引用的外部声明 81
4.9  C++兼容性 81
4.9.1  作用域 81
4.9.2  标志名称与typedef名称 81
4.9.3  类型的存储类说明符 82
4.9.4  const类型限定符 82
4.9.5  初始化语句 82
4.9.6  隐式声明 82
4.9.7  定义声明与引用声明 82
4.9.8  函数连接 83
4.9.9  无参函数 83
4.10  练习 83
第5章  类型 85
5.1  整数类型 86
5.1.1  带符号整数类型 86
5.1.2  无符号整数类型 89
5.1.3  字符类型 90
5.1.4  扩展整数类型 91
5.1.5  布尔类型 91
5.2  浮点数类型 92
5.3  指针类型 95
5.3.1  通用指针 96
5.3.2  null指针与无效指针 97
5.3.3  指针注意事项 98
5.4  数组类型 98
5.4.1  数组与指针 98
5.4.2  多维数组 99
5.4.3  数组边界 100
5.4.4  运算 100
5.4.5  变长数组 101
5.5  枚举类型 102
5.6  结构类型 104
5.6.1  结构类型引用 106
5.6.2  结构运算 107
5.6.3  成员 107
5.6.4  结构成员存储布局 108
5.6.5  位字段 109
5.6.6  移植性问题 111
5.6.7  结构长度 112
5.6.8  灵活数组成员 112
5.7  联合类型 113
5.7.1  联合成员存储布局 114
5.7.2  联合类型长度 114
5.7.3  使用联合类型 115
5.7.4  误用联合类型 116
5.8  函数类型 117
5.9  void类型 119
5.10  typedef名称 119
5.10.1  函数类型的typedef名称 121
5.10.2  重定义typedef名称 121
5.10.3  实现注意事项 122
5.11  类型兼容性 122
5.11.1  一致类型 122
5.11.2  枚举兼容性 123
5.11.3  数组兼容性 123
5.11.4  函数兼容性 124
5.11.5  结构和联合兼容性 124
5.11.6  指针兼容性 124
5.11.7  源文件之间的兼容性 124
5.12  类型名与抽象声明符 125
5.13  C++兼容性 126
5.13.1  枚举类型 126
5.13.2  typedef名称 126
5.13.3  类型兼容性 127
5.14  练习 127
第6章  转换与表示 129
6.1  表示 129
6.1.1  存储单元与数据长度 129
6.1.2  字节顺序 130
6.1.3  对齐限制 131
6.1.4  指针长度 132
6.1.5  寻址模型 132
6.1.6  类型表示 134
6.2  转换 134
6.2.1  表示方法改变 134
6.2.2  普通转换 134
6.2.3  转换成整数类型 135
6.2.4  转换成浮点数类型 136
6.2.5  转换成结构类型或联合类型 136
6.2.6  转换成枚举类型 136
6.2.7  转换成指针类型 137
6.2.8  转换成数组类型或函数类型 137
6.2.9  转换成void类型 137
6.3  普通转换 138
6.3.1  类型转换 138
6.3.2  赋值转换 138
6.3.3  普通一元转换 139
6.3.4  普通二元转换 141
6.3.5  默认函数参数转换 142
6.3.6  其他函数转换 143
6.4  C++兼容性 143
6.5  练习 143
第7章  表达式 145
7.1  对象、左值与指定符 145
7.2  表达式与优先级 146
7.2.1  运算符优先级与结合律 146
7.2.2  溢出和其他算术异常 147
7.3  主表达式 148
7.3.1  名称 148
7.3.2  字面值 149
7.3.3  括号表达式 149
7.4  后缀表达式 149
7.4.1  下标表达式 150
7.4.2  成员选择 151
7.4.3  函数调用 153
7.4.4  后缀自增运算符与后缀自减运算符 154
7.4.5  复合字面值 155
7.5  一元表达式 156
7.5.1  类型转换 157
7.5.2  sizeof运算符 157
7.5.3  一元负号运算符与一元正号运算符 158
7.5.4  逻辑非运算符 159
7.5.5  按位反运算符 159
7.5.6  地址运算符 160
7.5.7  间接访问运算符 160
7.5.8  前缀自增运算符与前缀自减运算符 161
7.6  二元运算符表达式 162
7.6.1  乘法运算符 162
7.6.2  加法运算符 164
7.6.3  移位运算符 165
7.6.4  关系运算符 167
7.6.5  判等运算符 168
7.6.6  按位运算符 169
7.6.7  整数集合示例 170
7.7  逻辑运算符表达式 174
7.8  条件表达式 175
7.9  赋值表达式 176
7.9.1  简单赋值 177
7.9.2  复合赋值 178
7.10  顺序表达式 179
7.11  常量表达式 180
7.11.1  预处理器常量表达式 180
7.11.2  整型常量表达式 181
7.11.3  初始化程序常量表达式 181
7.12  求值顺序 182
7.13  放弃值 183
7.14  优化内存访问 184
7.15  C++兼容性 185
7.16  练习 185
第8章  语句 187
8.1  语句的一般语法规则 187
8.2  表达式语句 188
8.3  标号语句 188
8.4  复合语句 189
8.5  条件语句 190
8.5.1  多路条件语句 191
8.5.2  悬而未决的else问题 191
8.6  迭代语句 192
8.6.1  while语句 192
8.6.2  do语句 193
8.6.3  for语句 194
8.6.4  for语句应用 195
8.6.5  多个控制变量 197
8.7  switch语句 198
8.8  break语句与continue语句 200
8.9  return语句 202
8.10  goto语句 203
8.11  null语句 203
8.12  C++兼容性 204
8.12.1  复合语句 204
8.12.2  循环中的声明 204
8.13  练习 204
第9章  函数 206
9.1  函数定义 206
9.2  函数原型 208
9.2.1  何时存在原型 209
9.2.2  混合原型声明与非原型声明 210
9.2.3  正确使用原型 211
9.2.4  原型与调用规则 211
9.2.5  与标准C语言和传统C语言的兼容性 212
9.3  正式参数声明 213
9.4  调整参数类型 215
9.5  参数传递规则 216
9.6  参数一致性 216
9.7  函数返回类型 217
9.8  返回类型一致性 218
9.9  主程序 218
9.10  内联函数 219
9.11  C++兼容性 221
9.11.1  原型 221
9.11.2  参数类型声明与返回类型声明 221
9.11.3  返回类型一致性 221
9.11.4  main函数 221
9.11.5  内联 221
9.12  练习 221
第二部分  C语言库
第10章  库简介 223
10.1  标准C语言函数 223
10.2  C++兼容性 224
10.3  库头文件与名称 225
10.3.1  assert.h 225
10.3.2  complex.h 226
10.3.3  ctype.h 226
10.3.4  errno.h 226
10.3.5  fenv.h 226
10.3.6  float.h 226
10.3.7  inttypes.h 227
10.3.8  iso646.h 227
10.3.9  limits.h 227
10.3.10  locale.h 227
10.3.11  math.h 227
10.3.12  setjmp.h 229
10.3.13  signal.h 229
10.3.14  stdarg.h 229
10.3.15  stdbool.h 229
10.3.16  stddef.h 229
10.3.17  stdint.h 229
10.3.18  stdio.h 229
10.3.19  stdlib.h 230
10.3.20  string.h 230
10.3.21  tgmath.h 230
10.3.22  time.h 231
10.2.23  wchar.h 231
10.3.24  wctype.h 231
第11章  标准语言补充 232
11.1  NULL、ptrdiff_t、size_t、offsetof 232
11.2  EDOM、ERANGE、EILSEQ、
errno、strerror、perror 233
11.3  bool、false、true 234
11.4  va_list、va_start、va_arg、va_end 235
11.5  标准C语言运算符宏 238
第12章  字符处理函数 239
12.1  isalnum、isalpha、iscntrl、iswalnum、
iswalpha、iswcntrl 239
12.2  iscsym、iscsymf 241
12.3  isdigit、isodigit、isxdigit、iswdigit、
iswxdigit 241
12.4  isgraph、isprint、ispunct、iswgraph、
iswprint、iswpunct 241
12.5  islower、isupper、iswlower、iswupper 242
12.6  isblank、isspace、iswhite、iswspace 243
12.7  toascii 243
12.8  toint 244
12.9  tolower、toupper、towlower、towupper 244
12.10  wctype_t、wctype、iswctype 245
12.11  wctrans_t、wctrans 246
第13章  字符串处理函数 247
13.1  strcat、strncat、wcscat、wcsncat 247
13.2  strcmp、strncmp、wcscmp、wcsncmp 248
13.3  strcpy、strncpy、wcscpy、wcsncpy 249
13.4  strlen、wcslen 249
13.5  strchr、strrchr、wcschr、wcsrchr 250
13.6  strspn、strcspn、strpbrk、strrpbrk、
wcsspn、wcscspn、wcspbrk 251
13.7  strstr、strtok、wcsstr、wcstok 252
13.8  strtod、strtof、strtold、strtol、strtoll、
strtoul、strtoull 253
13.9  atof、atoi、atol、atoll 253
13.10  strcoll、strxfrm、wcscoll、wcsxfrm 253
第14章  内存函数 255
14.1  memchr、wmemchr 255
14.2  memcmp、wmemcmp 255
14.3  memcpy、memccpy、memmove、
wmemcpy、wmemmove 256
14.4  memset、wmemset 257
第15章  输入/输出函数 258
15.1  FILE、EOF、wchar_t、wint_t、WEOF 259
15.2  fopen、fclose、fflush、freopen、fwide 259
15.2.1  文件访问方式 261
15.2.2  文件定向 262
15.3  setbuf、setvbuf 262
15.4  stdin、stdout、stderr 263
15.5  fseek、ftell、rewind、fgetpos、fsetpos 264
15.5.1  fseek与ftell 264
15.5.2  fgetpos与fsetpos 265
15.6  fgetc、fgetwc、getc、getwc、getchar、
getwchar、ungetc、ungetwc 266
15.7  fgets、fgetws、gets 267
15.8  fscanf、fwscanf、scanf、wscanf、
sscanf、swscanf 267
15.8.1  控制字符串 268
15.8.2  转换说明 269
15.9  fputc、fputwc、putc、putwc、
putchar、putwchar 273
15.10  fputs、fputws、puts 274
15.11  fprintf、printf、sprintf、snprintf、
fwprintf、wprintf、swprintf 274
15.11.1  输出格式 275
15.11.2  转换说明 276
15.11.3  转换标志 276
15.11.4  最小字段宽度 277
15.11.5  精度说明 277
15.11.6  长度说明 277
15.11.7  转换操作 278
15.12  v[x]printf、v[x]scanf 285
15.13  fread、fwrite 286
15.14  feof、ferror、clearerr 287
15.15  remove、rename 287
15.16  tmpfile、tmpnam、mktemp 288
第16章  通用函数 289
16.1  malloc、calloc、mlalloc、clalloc、
free、cfree 289
16.2  rand、srand、RAND_MAX 291
16.3  atof、atoi、atol、atoll 291
16.4  strtod、strtof、strtold、strtol、
strtoll、strtoul、strtoull 292
16.5  abort、atexit、exit、_Exit、EXIT_
FAILURE、EXIT_SUCCESS 294
16.6  getenv 295
16.7  system 295
16.8  bsearch、qsort 296
16.9  abs、labs、llabs、div、ldiv、lldiv 298
16.10  mblen、mbtowc、wctomb 299
16.10.1  编码方式与转换状态 299
16.10.2  长度函数 300
16.10.3  转换成宽字符 300
16.10.4  转换宽字符 300
16.11  mbstowcs、wcstombs 300
16.11.1  转换成宽字符串 301
16.11.2  转换宽字符串 302
第17章  数学函数 302
17.1  abs、labs、llabs、div、ldiv、lldiv 302
17.2  fabs 302
17.3  ceil、floor、lrint、llrint、lround、
llround、nearbyint、round、rint、trunc 303
17.4  fmod、remainder、remquo 304
17.5  frexp、ldexp、modf、scalbn 304
17.6  exp、exp2、expm1、ilogb、
log、log10、log1p、log2、logb 305
17.7  cbrt、fma、hypot、pow、sqrt 306
17.8  rand、srand、RAND_MAX 307
17.9  cos、sin、tan、cosh、sinh、tanh 307
17.10  acos、asin、atan、atan2、
acosh、asinh、atanh 307
17.11  fdim、fmax、fmin 308
17.12  通用类型宏 309
17.13  erf、erfc、lgamma、tgamma 312
17.14  fpclassify、isfinite、isinf、
isnan、isnormal、signbit 312
17.15  copysign、nan、nextafter、nexttoward 313
17.16  isgreater、isgreaterequal、isless、
islessequal、islessgreater、isunordered 314
第18章  时间和日期函数 315
18.1  clock、clock_t、CLOCKS_PER_SEC、
times 315
18.2  time、time_t 316
18.3  asctime、ctime 316
18.4  gmtime、localtime、mktime 317
18.5  difftime 318
18.6  strftime、wcsftime 319
第19章  控制函数 322
19.1  assert、NDEBUG 322
19.2  system、exec 322
19.3  exit、abort 322
19.4  setjmp、longjmp、jmp_buf 323
19.5  atexit 324
19.6  signal、raise、gsignal、ssingnal、psignal 324
19.7  sleep、alarm 326
第20章  区域设置函数 327
20.1  setlocale 327
20.2  localeconv 328
第21章  扩展整数类型 331
21.1  一般规则 331
21.1.1  类型种类 331
21.1.2  全部定义或全部不定义 331
21.1.3  最小限制与最大限制 331
21.1.4  PRI...与SCN...格式字符串宏 332
21.2  准确长度类型 333
21.3  最小长度类型 333
21.4  快速长度类型 334
21.5  指针长度类型与最大长度类型 335
21.6  ptrdiff_t、size_t、wchar_t、wint_t
与sig_atomic_t的范围 336
21.7  imaxabs、imaxdiv、imaxdiv_t 336
21.8  strtoimax、strtouimax 337
21.9  wcstoimax、wcstoumax 337
第22章  浮点数环境 338
22.1  概述 338
22.2  浮点数环境 338
22.3  浮点数异常 339
22.4  浮点数舍入方式 340
第23章  复数算术 341
23.1  复数库规则 341
23.2  complex、_Complex_I、imaginary、
_Imaginary_I、I 342
23.3  CX_LIMITED_RANGE 341
23.4  cacos、casin、catan、ccos、csin、ctan 341
23.5  cacosh、casinh、catanh、ccosh、
csinh、ctanh 342
23.6  cexp、clog、cabs、cpow、csqrt 343
23.7  carg、cimag、creal、conj、cproj 344
第24章  宽字符与多字节函数 346
24.1  基本类型和宏 346
24.2  多字节字符与宽字符的转换 346
24.3  宽字符串与多字节字符串的转换 347
24.4  转换成算术类型 348
24.5  输入与输出函数 349
24.6  字符串函数 349
24.7  日期与时间转换 350
24.8  宽字符分类函数与映射函数 350
第三部分  附   录
附录A  ASCII字符集 353
附录B  C语言语法 354
附录C  练习答案 367
索引 374

教学资源推荐
作者: [加拿大] 马丁·P.罗毕拉德(Martin P. Robillard) 著
作者: 刘奇志 尹存燕 曹迎春 编著
作者: (美)Kenneth C.Louden
作者: Steven S.Muchnick
参考读物推荐
作者: 黄灯桥 著
作者: (美)Samuel P. Harbison III,Guy L. Steele Jr. 著