下载地址:点我

凯尼格 (作者), 高巍 (译者)

《C和C++经典著作:C陷阱与缺陷》适合有一定经验的C程序员阅读学习,即便你是C编程高手,《C和C++经典著作:C陷阱与缺陷》也应该成为你的案头必 备书籍。作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作《C和C++经典著作:C陷阱与缺陷》的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。《C和C++经典著作:C陷阱与缺陷》分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。结尾,作者用一章的篇幅给出了若干具有实用价值的建议。

编辑推荐

AndrewKoenig自己在Bell实验室时发表的论文为基础,结合自己的工作经验扩展成这本对C程序员具有珍贵价值的经典著作。写作《C和C++经典著作:C陷阱与缺陷》的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。 
《C和C++经典著作:C陷阱与缺陷》所揭示的知识,到少能够帮助你减少C代码和初级C++代码中90%的Bug。 
——Francis Glassborow,ACCU主席

作者简介

Andrew Koenig,AT&T大规模程序研发部(莉贝尔实验室)成员。他从1 986年开始从事C语言的研究,1977年加入贝尔实验室。在1989年ISO/ANSI C++委员会成立时,他就加入了该委员会,并一直担任项目编辑;他还是《Rumirlatio rls on C++》(C++沉思录)、《CTraps and Pitfalls》的作者。

目录

第0章 导读
第1章 词法“陷阱”
1.1 =不同于==
1.2 &和|不同于&&和||
1.3 词法分析中的“贪心法”
1.4 整型常量
1.5 字符与字符串

第2章 语法“陷阱”
2.1 理解函数声明
2.2 运算符的优先级问题
2.3 注意作为语句结束标志的分号
2.4 switch语句
2.5 函数调用
2.6 “悬挂”else引发的问题

第3章 语义“陷阱”
3.1 指针与数组
3.2 非数组的指针
3.3 作为参数的数组声明
3.4 避免“举隅法”
3.5 空指针并非空字符串
3.6 边界计算与不对称边界
3.7 求值顺序
3.8 运算符&&、||和!
3.9 整数溢出
3.10 为函数main提供返回值

第4章 连接
4.1 什么是连接器
4.2 声明与定义
4.3 命名冲突与static修饰符
4.4 形参、实参与返回值
4.5 检查外部类型
4.6 头文件

第5章 库函数
5.1 返回整数的getchar函数
5.2 更新顺序文件
5.3 缓冲输出与内存分配
5.4 使用ernlo检测错误
5.5 库函数signal

第6章 预处理器
6.1 不能忽视宏定义中的空格
6.2 宏并不是函数
6.3 宏并不是语句
6.4 宏并不是类型定义

第7章 可移植性缺陷
7.1 应对C语言标准变更
7.2 标识符名称的限制
7.3 整数的大小
7.4 字符是有符号整数还是无符号整数
7.5 移位运算符
7.6 内存位置0
7.7 除法运算时发生的截断
7.8 随机数的大小
7.9 大小写转换
7.10 首先释放,然后重新分配
7.11 可移植性问题的一个例子
第8章 建议与答案
8.1 建议
8.2 答案
附录A:PRINTF,VARARGS与STDARG
附录B:Koenig和Moo夫妇访谈

下载地址:点我

C语言学习书籍推荐《C陷阱与缺陷》下载的更多相关文章

  1. C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载

    普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表 ...

  2. C语言学习书籍推荐《C语言入门经典(第4版)》

    霍顿 (Ivor Horton) (作者), 杨浩 (译者) <C语言入门经典(第4版)>的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员.读者基本不需要具备任何编程知识, ...

  3. C语言学习书籍推荐《C语言入门经典(第5版)》下载

    霍尔顿 (Ivor Horton) (作者), 杨浩 (译者) 下载地址:点我 C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad ...

  4. C语言学习书籍推荐《你必须知道的495个C语言问题》

    萨米特 (Steve summit) (作者), 孙云 (译者), 朱群英 (译者) 下载地址:点我 <你必须知道的495个C语言问题>以问答的形式组织内容,讨论了学习或使用C语言的过程中 ...

  5. c语言学习书籍推荐《C语言学习路线图•C语言必须知道的300个问题》下载

    下载地址:点我 <C语言学习路线图•C语言必须知道的300个问题>以基础知识为框架,介绍了c语言各部分知识所对应的常见开发疑难问题,并作了透彻地解析.<C语言学习路线图•C语言必须知 ...

  6. C语言学习书籍推荐《C语言接口与实现:创建可重用软件的技术》下载

    <C语言接口与实现:创建可重用软件的技术>概念清晰.实例详尽,是一本有关设计.实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南.书中提供了大量实例,重在阐述如何用一种 ...

  7. C语言学习书籍推荐《C语言程序设计 现代方法(第2版)》下载

    下载地址:点我 C语言仍然是计算机领域的通用语言之一,但现在的C语言已经和当初的时候大不相同了.本书主要的一个目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程,不再强调“手工优化 ...

  8. 嵌入式C语言-学习书籍推荐(pdf附上百度云链接)

    先推荐学习视频网站: https://www.bilibili.com/video/av22631677?from=search&seid=800092160484173881 书籍只推荐2本 ...

  9. C语言学习书籍推荐《C和指针 Pointers On C》下载

    <C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去.  全书共18 ...

随机推荐

  1. Delphi7程序调用C#写的DLL解决办法

     近来,因工作需要,必须解决Delphi7写的主程序调用C#写的dll的问题.在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行:    编写C#dll的方法都一样,首先在vs2005中创建一 ...

  2. Socket 专题

    Socket小白篇-附加TCP/UDP简介 Socket 网络通信的要素 TCP和UDP Socket的通信流程图 1.Socket 什么是Socket Socket:又称作是套接字,网络上的两个程序 ...

  3. Android项目实战(一): SpannableString与SpannableStringBuilder

    原文:Android项目实战(一): SpannableString与SpannableStringBuilder 前言: 曾经在一些APP中的一些类似“帮助”“关于”的界面看过一行文字显示不同的颜色 ...

  4. UWP应用使用SQLite库的方法

    1.打开菜单“工具”-“扩展和更新”,选择“联机”选项,然后搜索“SQLite”,在搜索结果中找到“SQLite for Universal Windows Platform”,然后点击下载进行安装. ...

  5. 微信小程序把玩(三十六)Storage API

    原文:微信小程序把玩(三十六)Storage API 其实这个存储在新建Demo的时候就已经用到了就是存储就是那个logs日志,数据存储主要分为同步和异步 异步存储方法: 存数据 wx.setStor ...

  6. SQL Server上唯一的数据库集群:负载均衡、读写分离、容灾(数据零丢失、服务高可用)

    SQL Server上唯一的数据库集群:负载均衡.读写分离.容灾(数据零丢失.服务高可用).审计.优化,全面解决数据库用户问题.一键安装,易用稳定,性价比高,下载链接:http://www.zheti ...

  7. HTTPS上线过程说明(阿里云提供免费证书)

    一.上马HTTPS的原因: ①.苹果App Store强制其平台上的app均要使用HTTPS ②.网站经常被劫持,用户和领导希望使用HTTPS ③.跟随HTTPS的大趋势 二.应用上马HTTPS之部门 ...

  8. centos 部署 asp.net core Error -99 EADDRNOTAVAIL address not available解决

    centos7.3上部署 asp.net core 错误如下: Hosting environment: Production Content root path: /home/netcore Now ...

  9. pycharm窗口选项卡管理

    1.主题 我们已经注意到Pycharm的主编辑框是基于窗口选项卡机制显示的,Pycharm选项卡多种多样,这里我们将详细介绍这种选项卡机制.  2.激活的选项卡 每当我们打开一个Python文件时op ...

  10. 《linux内核设计与实现》阅读笔记-进程与调度

      一.进程 process: executing program code(text section) data section containing global variables open f ...