书籍详情

C语言参考手册(原书第5版)

C语言参考手册(原书第5版)

作者:(美)Samuel P. Harbison Ⅲ,(美)Guy L. Steele Jr.著;邱仲潘等译;邱仲潘译

出版社:机械工业出版社

出版时间:2003-08-01

ISBN:9787111122197

定价:¥39.00

购买这本书可以去
内容简介
  本书是经典c语言参考手册的最新版,在强调正确性、可移植性和可维护性的基础上,对C语言的具体细节、运行库以及C语言编程风格做了完整、准确的描述。本书涵盖了传统C语言、C89、C95、C99等所有C语言版本的实现,同时讨论了C++与C语言兼容的部分。全书自上而下介绍了C语言的词法结构、预处理器、声明、类型表达式、语句、函数和运行库,是所有C语言编程人员必备的参考书。这本畅销的权威参考手册对c语言的基本概念和运行库提供了完整的描述,同时还强调了以正确性、可移植性和可维护性为根本出发点的良好的C语言编程风格;被国外众多高校广泛采用为教材或教学参考书。本书描述了c语言各个版本的所有细节,是c语言编程人员和实现者惟一必备的参考手册。最新的第5版经过修订和更新,融入了最新c语言标准ISO/IEC9899:1999的完整描述,包括强大的语言扩展和新的函数库。Web站点WWW.CAReferenceManuaI.com中包含了本书较长示例的源代码、对C语言争论点的深入讨论、最新ISO/IEC语言标准修订以及其他重要C语言资源的链接。作者简介SamaelP.HarbiSOnⅢ于卡内基,梅隆大学获得计算机科学博士学位,现任Carlow学院的计算机科学系副教授。他曾就职于德州仪器和Tartan公司,还曾经担任C++程序设计语言标准化国际工作组的主席。他的研究领域涉及程序设计语言和软件开发工具。GuyL.SteeleJr.于MIT获得计算机科学和人工智能博士学位,曾任卡内基·梅隆大学计算机科学系副教授,还曾就职子Tartan实验室和Thinking Machines公司,1994年加入SUN公司,主要从事并行算法、实现策略、软件支持等方面的研究以及Java语言规范的制定。他曾是X3J11(C语言)标准委员会,X3J3(Fortran)标准委员会成员,现在还担任X3J13(Common Lisp)标准委员会的主席。鉴子他在Usp语言词法方面的贡献,1988年ACM授予他Grace Murray Hopper奖。他于1990年被选为美国人工智能学会会士,于1994年被选为ACM会士。他还曾任1990年ACM图灵奖评审委员会的主席。
作者简介
  Samuel P.Harbison III于卡内基-梅隆大学获得计算机科学博士学位,现任Carlow学院的计算机科学系副教授。他曾就职于德州仪器和Tartan公司,还曾经担任C++程序设计语言标准化国际工作组的主席。他的研究领域涉及程序设计语言和软件开发工具。 Guy L.Steele Jr.于MIT获得计算机科学和人工智能博士学位,曾任卡内基-梅隆大学计算机科学系副教授,还曾就职于Tartan实验室和Thinking Machines公司,1994年加入SUN公司,主要从事并行算法、实现策略、软件支持等方面的研究以及Java语言规范的制定。他曾是X3J11标准委员会、X3J3标准委员会成员,现在还担任X3J13标准委员会的主席。鉴于他在Lisp语言词法方面的贡献,1988年ACM授予他Grace Murray Hopper奖。他于1990年被选为美国人工智能学会会士,于1994年被选为ACM会士。他还曾任1990年ACM图灵奖评审委员会的主席。
目录
出版者的话
专家指导委员会
前言
第一部分 C语言
第1章 简介
1.1 C语言的演变
1.1.1 传统C语言
1.1.2 标准C语言(1989)
1.1.3 标准C语言(1995)
1.1.4 标准C语言(1999)
1.1.5 标准C++语言
1.1.6 本书内容
1.2 使用C语言的何种方言
1.3 C语言编程概述
1.4 符合性
1.5 语法符号
第2章 词法元素
2.1 字符集
2.1.1 执行字符集
2.1.2 空白符与行终结符
2.1.3 字符编码方式
2.1.4 三字符组
2.1.5 多字节字符与宽字符
2.2 注释
2.3 记号
2.4 运算符与分隔符
2.5 标识符
2.6 关键字
2.7 常量
2.7.1 整型常量
2.7.2 浮点型常量
2.7.3 字符型常量
2.7.4 字符串型常量
2.7.5 转义符
2.7.6 字符转义符
2.7.7 数字转义符
2.8 C++兼容性
2.8.1 字符集
2.8.2 注释语句
2.8.3 运算符
2.8.4 标识符与关键字
2.8.5 字符型常量
2.9 字符集、指令集和编码方式
2.10 练习
第3章 C语言预处理器
3.1 预处理器命令
3.2 预处理器词法规则
3.3 定义和替换
3.3.1 对象式宏定义
3.3.2 函数式宏定义
3.3.3 重新扫描宏表达式
3.3.4 预定义宏
3.3.5 取消宏定义与重新定义宏
3.3.6 宏扩展中的优先级错误
3.3.7 宏参数的副作用
3.3.8 将记号转换为字符串
3.3.9 宏扩展中的记号合并
3.3.10 宏中的可变参数表
3.3.11 其他问题
3.4 文件包含
3.5 条件编译
3.5.1 #if、#else与#endif命令
3.5.2 #elif命令
3.5.3 #ifdef与#ifndef命令
3.5.4 条件命令中的常量表达式
3.5.5 defined运算符
3.6 显式的行编号
3.7 杂注指令
3.7.1 标准杂注
3.7.2 标准杂注的位置
3.7.3 _Pragma运算符
3.8 错误指令
3.9 C++兼容性
3.10 练习
第4章 声明
4.1 声明组织
4.2 术语
4.2.1 作用域
4.2.2 有效性
4.2.3 向前引用
4.2.4 名称重载
4.2.5 重复声明
4.2.6 重复有效性
4.2.7 生存期
4.2.8 初值
4.2.9 外部名称
4.2.10 编译名称
4.3 存储类说明符与函数说明符
4.3.1 默认存储类说明符
4.3.2 存储类说明符举例
4.3.3 函数说明符
4.4 类型说明符与限定符
4.4.1 默认类型说明符
4.4.2 忽略声明符
4.4.3 类型限定符
4.4.4 const类型限定符
4.4.5 volatile类型限定符与序列点
4.4.6 restrict类型限定符
4.5 声明符
4.5.1 简单声明符
4.5.2 指针声明符
4.5.3 数组声明符
4.5.4 函数声明符
4.5.5 复合声明符
4.6 初始化语句
4.6.1 整数变量初始化语句
4.6.2 浮点数变量初始化语句
4.6.3 指针变量初始化语句
4.6.4 数组类型变量初始化语句
4.6.5 枚举类型变量初始化语句
4.6.6 结构类型变量初始化语句
4.6.7 联合变量初始化语句
4.6.8 省略花括号
4.6.9 指定初值
4.7 隐式声明
4.8 外部名称
4.8.1 初始化语句模型
4.8.2 省略存储类模型
4.8.3 公用模型
4.8.4 混合公用模型
4.8.5 总结与建议
4.8.6 未引用的外部声明
4.9 C++兼容性
4.9.1 作用域
4.9.2 标志名称与typedef名称
4.9.3 类型的存储类说明符
4.9.4 const类型限定符
4.9.5 初始化语句
4.9.6 隐式声明
4.9.7 定义声明与引用声明
4.9.8 函数连接
4.9.9 无参函数
4.10 练习
第5章 类型
5.1 整数类型
5.1.1 带符号整数类型
5.1.2 无符号整数类型
5.1.3 字符类型
5.1.4 扩展整数类型
5.1.5 布尔类型
5.2 浮点数类型
5.3 指针类型
5.3.1 通用指针
5.3.2 null指针与无效指针
5.3.3 指针注意事项
5.4 数组类型
5.4.1 数组与指针
5.4.2 多维数组
5.4.3 数组边界
5.4.4 运算
5.4.5 变长数组
5.5 枚举类型
5.6 结构类型
5.6.1 结构类型引用
5.6.2 结构运算
5.6.3 成员
5.6.4 结构成员存储布局
5.6.5 位字段
5.6.6 移植性问题
5.6.7 结构长度
5.6.8 灵活数组成员
5.7 联合类型
5.7.1 联合成员存储布局
5.7.2 联合类型长度
5.7.3 使用联合类型
5.7.4 误用联合类型
5.8 函数类型
5.9 void类型
5.10 typedef名称
5.10.1 函数类型的typedef名称
5.10.2 重定义typedef名称
5.10.3 实现注意事项
5.11 类型兼容性
5.11.1 一致类型
5.11.2 枚举兼容性
5.11.3 数组兼容性
5.11.4 函数兼容性
5.11.5 结构和联合兼容性
5.11.6 指针兼容性
5.11.7 源文件之间的兼容性
5.12 类型名与抽象声明符
5.13 C++兼容性
5.13.1 枚举类型
5.13.2 typedef名称
5.13.3 类型兼容性
5.14 练习
第6章 转换与表示
6.1 表示
6.1.1 存储单元与数据长度
6.1.2 字节顺序
6.1.3 对齐限制
6.1.4 指针长度
6.1.5 寻址模型
6.1.6 类型表示
6.2 转换
6.2.1 表示方法改变
6.2.2 普通转换
6.2.3 转换成整数类型
6.2.4 转换成浮点数类型
6.2.5 转换成结构类型或联合类型
6.2.6 转换成枚举类型
6.2.7 转换成指针类型
6.2.8 转换成数组类型或函数类型
6.2.9 转换成void类型
6.3 普通转换
6.3.1 类型转换
6.3.2 赋值转换
6.3.3 普通一元转换
6.3.4 普通二元转换
6.3.5 默认函数参数转换
6.3.6 其他函数转换
6.4 C++兼容性
6.5 练习
第7章 表达式
7.1 对象、左值与指定符
7.2 表达式与优先级
7.2.1 运算符优先级与结合律
7.2.2 溢出和其他算术异常
7.3 主表达式
7.3.1 名称
7.3.2 字面值
7.3.3 括号表达式
7.4 后缀表达式
7.4.1 下标表达式
7.4.2 成员选择
7.4.3 函数调用
7.4.4 后缀自增运算符与后缀自减运算符
7.4.5 复合字面值
7.5 一元表达式
7.5.1 类型转换
7.5.2 sizeof运算符
7.5.3 一元负号运算符与一元正号运算符
7.5.4 逻辑非运算符
7.5.5 按位反运算符
7.5.6 地址运算符
7.5.7 间接访问运算符
7.5.8 前缀自增运算符与前缀自减运算符
7.6 二元运算符表达式
7.6.1 乘法运算符
7.6.2 加法运算符
7.6.3 移位运算符
7.6.4 关系运算符
7.6.5 判等运算符
7.6.6 按位运算符
7.6.7 整数集合示例
7.7 逻辑运算符表达式
7.8 条件表达式
7.9 赋值表达式
7.9.1 简单赋值
7.9.2 复合赋值
7.10 顺序表达式
7.11 常量表达式
7.11.1 预处理器常量表达式
7.11.2 整型常量表达式
7.11.3 初始化程序常量表达式
7.12 求值顺序
7.13 放弃值
7.14 优化内存访问
7.15 C++兼容性
7.16 练习
第8章 语句
8.1 语句的一般语法规则
8.2 表达式语句
8.3 标号语句
8.4 复合语句
8.5 条件语句
8.5.1 多路条件语句
8.5.2 悬而未决的else问题
8.6 迭代语句
8.6.1 while语句
8.6.2 do语句
8.6.3 for语句
8.6.4 for语句应用
8.6.5 多个控制变量
8.7 switch语句
8.8 break语句与continue语句
8.9 return语句
8.10 goto语句
8.11 null语句
8.12 C++兼容性
8.12.1 复合语句
8.12.2 循环中的声明
8.13 练习
第9章 函数
9.1 函数定义
9.2 函数原型
9.2.1 何时存在原型
9.2.2 混合原型声明与非原型声明
9.2.3 正确使用原型
9.2.4 原型与调用规则
9.2.5 与标准C语言和传统C语言的兼容性
9.3 正式参数声明
9.4 调整参数类型
9.5 参数传递规则
9.6 参数一致性
9.7 函数返回类型
9.8 返回类型一致性
9.9 主程序
9.10 内联函数
9.11 C++兼容性
9.11.1 原型
9.11.2 参数类型声明与返回类型声明
9.11.3 返回类型一致性
9.11.4 main函数
9.11.5 内联
9.12 练习
第二部分 C语言库
第10章 库简介
10.1 标准C语言函数
10.2 C++兼容性
10.3 库头文件与名称
10.3.1 assert.h
10.3.2 complex.h
10.3.3 ctype.h
10.3.4 errno.h
10.3.5 fenv.h
10.3.6 float.h
10.3.7 inttypes.h
10.3.8 iso646.h
10.3.9 limits.h
10.3.10 locale.h
10.3.11 math.h
10.3.12 setjmp.h
10.3.13 signal.h
10.3.14 stdarg.h
10.3.15 stdbool.h
10.3.16 stddef.h
10.3.17 stdint.h
10.3.18 stdio.h
10.3.19 stdlib.h
10.3.20 string.h
10.3.21 tgmath.h
10.3.22 time.h
10.2.23 wchar.h
10.3.24 wctype.h
第11章 标准语言补充
11.1 NULL、ptrdiff_t、size_t、offsetof
11.2 EDOM、ERANGE、EILSEQ、errno、strerror、perror
11.3 bool、false、true
11.4 va_list、va_start、va_arg、va_end
11.5 标准C语言运算符宏
第12章 字符处理函数
12.1 isalnum、isalpha、iscntrl、iswalnum、iswalpha、iswcntrl
12.2 iscsym、iscsymf
12.3 isdigit、isodigit、isxdigit、iswdigit、iswxdigit
12.4 isgraph、isprint、ispunct、iswgraph、iswprint、iswpunct
12.5 islower、isupper、iswlower、iswupper
12.6 isblank、isspace、iswhite、iswspace
12.7 toascii
12.8 toint
12.9 tolower、toupper、towlower、towupper
12.10 wctype_t、wctype、iswctype
12.11 wctrans_t、wctrans
第13章 字符串处理函数
13.1 strcat、strncat、wcscat、wcsncat
13.2 strcmp、strncmp、wcscmp、wcsncmp
13.3 strcpy、strncpy、wcscpy、wcsncpy
13.4 strlen、wcslen
13.5 strchr、strrchr、wcschr、wcsrchr
13.6 strspn、strcspn、strpbrk、strrpbrk、wcsspn、wcscspn、wcspbrk
13.7 strstr、strtok、wcsstr、wcstok
13.8 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull
13.9 atof、atoi、atol、atoll
13.10 strcoll、strxfrm、wcscoll、wcsxfrm
第14章 内存函数
14.1 memchr、wmemchr
14.2 memcmp、wmemcmp
14.3 memcpy、memccpy、memmove、wmemcpy、wmemmove
14.4 memset、wmemset
第15章 输入/输出函数
15.1 FILE、EOF、wchar_t、wint_t、WEOF
15.2 fopen、fclose、fflush、freopen、fwide
15.2.1 文件访问方式
15.2.2 文件定向
15.3 setbuf、setvbuf
15.4 stdin、stdout、stderr
15.5 fseek、ftell、rewind、fgetpos、fsetpos
15.5.1 fseek与ftell
15.5.2 fgetpos与fsetpos
15.6 fgetc、fgetwc、getc、getwc、getchar、getwchar、ungetc、ungetwc
15.7 fgets、fgetws、gets
15.8 fscanf、fwscanf、scanf、wscanf、sscanf、swscanf
15.8.1 控制字符串
15.8.2 转换说明
15.9 fputc、fputwc、putc、putwc、putchar、putwchar
15.10 fputs、fputws、puts
15.11 fprintf、printf、sprintf、snprintf、fwprintf、wprintf、swprintf
15.11.1 输出格式
15.11.2 转换说明
15.11.3 转换标志
15.11.4 最小字段宽度
15.11.5 精度说明
15.11.6 长度说明
15.11.7 转换操作
15.12 v[x]printf、v[x]scanf
15.13 fread、fwrite
15.14 feof、ferror、clearerr
15.15 remove、rename
15.16 tmpfile、tmpnam、mktemp
第16章 通用函数
16.1 malloc、calloc、mlalloc、clalloc、free、cfree
16.2 rand、srand、RAND_MAX
16.3 atof、atoi、atol、atoll
16.4 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull
16.5 abort、atexit、exit、_Exit、EXIT_FAILURE、EXIT_SUCCESS
16.6 getenv
16.7 system
16.8 bsearch、qsort
16.9 abs、labs、llabs、div、ldiv、lldiv
16.10 mblen、mbtowc、wctomb
16.10.1 编码方式与转换状态
16.10.2 长度函数
16.10.3 转换成宽字符
16.10.4 转换宽字符
16.11 mbstowcs、wcstombs
16.11.1 转换成宽字符串
16.11.2 转换宽字符串
第17章 数学函数
17.1 abs、labs、llabs、div、ldiv、lldiv
17.2 fabs
17.3 ceil、floor、lrint、llrint、lround、llround、nearbyint、round、rint、trunc
17.4 fmod、remainder、remquo
17.5 frexp、ldexp、modf、scalbn
17.6 exp、exp2、expm1、ilogb、log、log10、log1p、log2、logb
17.7 cbrt、fma、hypot、pow、sqrt
17.8 rand、srand、RAND_MAX
17.9 cos、sin、tan、cosh、sinh、tanh
17.10 acos、asin、atan、atan2、acosh、asinh、atanh
17.11 fdim、fmax、fmin
17.12 通用类型宏
17.13 erf、erfc、lgamma、tgamma
17.14 fpclassify、isfinite、isinf、isnan、isnormal、signbit
17.15 copysign、nan、nextafter、nexttoward
17.16 isgreater、isgreaterequal、isless、islessequal、islessgreater、isunordered
第18章 时间和日期函数
18.1 clock、clock_t、CLOCKS_PER_SEC、times
18.2 time、time_t
18.3 asctime、ctime
18.4 gmtime、localtime、mktime
18.5 difftime
18.6 strftime、wcsftime
第19章 控制函数
19.1 assert、NDEBUG
19.2 system、exec
19.3 exit、abort
19.4 setjmp、longjmp、jmp_buf
19.5 atexit
19.6 signal、raise、gsignal、ssingnal、psignal
19.7 sleep、alarm
第20章 区域设置函数
20.1 setlocale
20.2 localeconv
第21章 扩展整数类型
21.1 一般规则
21.1.1 类型种类
21.1.2 全部定义或全部不定义
21.1.3 最小限制与最大限制
21.1.4 PRI...与SCN...格式字符串宏
21.2 准确长度类型
21.3 最小长度类型
21.4 快速长度类型
21.5 指针长度类型与最大长度类型
21.6 ptrdiff_t、size_t、wchar_t、wint_t与sig_atomic_t的范围
21.7 imaxabs、imaxdiv、imaxdiv_t
21.8 strtoimax、strtouimax
21.9 wcstoimax、wcstoumax
第22章 浮点数环境
22.1 概述
22.2 浮点数环境
22.3 浮点数异常
22.4 浮点数舍入方式
第23章 复数算术
23.1 复数库规则
23.2 complex、_Complex_I、imaginary、_Imaginary_I、I
23.3 CX_LIMITED_RANGE
23.4 cacos、casin、catan、ccos、csin、ctan
23.5 cacosh、casinh、catanh、ccosh、csinh、ctanh
23.6 cexp、clog、cabs、cpow、csqrt
23.7 carg、cimag、creal、conj、cproj
第24章 宽字符与多字节函数
24.1 基本类型和宏
24.2 多字节字符与宽字符的转换
24.3 宽字符串与多字节字符串的转换
24.4 转换成算术类型
24.5 输入与输出函数
24.6 字符串函数
24.7 日期与时间转换
24.8 宽字符分类函数与映射函数
第三部分 附 录
附录A ASCII字符集
附录B C语言语法
附录C 练习答案
索引
猜您喜欢

读书导航