C11编程导论英文版
  • 推荐0
  • 收藏1
  • 浏览517

C11编程导论英文版

(美)Paul Deitel(保罗·戴特尔),(美) Harvey Deitel(哈维·戴特尔) (作者)  (译者)

  • 丛  书:原味精品书系
  • 书  号:978-7-121-27316-2
  • 出版日期:2016-04-05
  • 页  数:476
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: C for Programmers with an Introduction to C11,1E
  • 原书号:0133462064
  • 维护人:张春雨
本书沿用了Deitel特色的“程序实况解说”,深入探讨了C语言和C标准库。通过完整的语法着色、代码高亮、代码演练和程序输出,全面地介绍了测试程序的概念。本书汇集约5000行C代码和数百个开发技巧,将帮助你构建强大的应用程序。本书的内容包括构建自定义数据结构、标准库等;并选择了C11标准的一些新特性,如多线程来帮助你为目前的多核系统编写高性能的应用程序;C语言安全编程部分展示了如何让你编写的程序具有更好的鲁棒性,不易受到攻击。
本书适合具有一定高级语言编程背景的程序员阅读。
以实用的、示例丰富的形式讲述:
C语言编程基础知识
如何使用GNU gcc和gdb,以及如何Visual C++进行编译调试
C11标准的关键特性:泛型表达式,匿名结构与联合,内存对齐,_Static_assert、quick_exit和at_quick_exit,增强了对Unicode的支持,对Noreturn的功能说明,以及C11 headers
C11多线程性能增强
C语言安全编程部分
数据结构、搜索和排序
评价问题顺序、预处理器
指定初始值、复合文字、布尔型、复数、可变长度的数组、指针类型的限制、泛型、内联函数……
前言
欢迎大家和我一起学习C语言。本书会向软件开发专业人员介绍最先进的计算技术。
本书沿用了Deitel特色的“程序实况解说”风格,我们会用完整的可用性程序(而不是代码片段)来解释相关概念。每个代码示例后都跟着一个或者多个样例。请在线阅读“Before You Begin”的内容(http://www.deitel.com/bookresources/cfp/cfp_byb.pdf),并据此设置自己的电脑,以便顺畅地运行这130个代码示例和你自己的C程序。所有的源代码都可以从www.deitel.com/books/cfp和www.pearsonhighered.com/deitel下载。当学习这些程序时,请使用提供的源代码来运行它们。
本书在详细介绍C语言的同时,会兼顾挑战性和趣味性。如果有任何问题,都可以发送邮件到deitel@deitel.com,我们会及时回复。要了解本书的最新信息,可以访问www.deitel.com/books/cfp,或加入Facebook社区(www.deitel.com/deitelfan)、Twitter社区(@deitel)、Google+社区(gplus.to/deitel)和LinkedIn社区(bit.ly/deitelLinkedIn)。此外,你还可以订阅Deitel Buzz Online电子邮件新闻简报(www.deitel.com/newsletter/subscribe.html)来了解更多相关内容。
本书特色
本书的主要特色如下:
?覆盖C语言新标准。本书是针对2011年批准的C语言新标准编写的,该标准通常被称为C11或者被简单地称为“C标准”。不同编译器对新标准的支持有所不同。我们的大多数读者会选择使用GNU gcc编译器(支持新标准中的很多关键特性)或者微软的Visual C++编译器。微软只支持被添加到C99和C11中的一小部分C特性——主要是C++标准中也需要的那些特性。为了适应所有的读者,我们将新标准特性的讨论放在易于使用的相关章节,以及附录E“C语言新标准的附加特性”中。我们还用由C语言新标准引起的首选版本取代了过时的功能。
?C语言安全编程。我们在很多C语言编程章节中都添加了关于C语言安全编程的注意事项。我们还在www.deitel.com/SecureC/上发布了C语言安全编程资源中心。要了解更多细节,请参见下面的“C语言安全编程注意事项”的相关内容。
?专注于性能问题。C语言经常受到性能密集型应用程序(例如,操作系统、实时系统、嵌入式系统和通信系统)设计师的青睐,因此,我们会密切关注性能问题。
?所有的代码都在Windows和Linux下进行了测试。我们分别使用Visual C++(Windows)和GNU gcc(Linux)对每个示例代码进行了测试。
?更深入地研究了排序。排序是一个很有趣的问题,因为虽然不同的排序算法最终会得到相同的结果,但它们的内存消耗、占用CPU的时间和其他系统资源完全不同——算法性能至关重要。我们在第6章开始介绍排序,并且在附录D中对其进行了更深入的探讨。我们考虑了几种算法,并从它们的内存消耗和对处理器的要求方面进行了比较。为此,我们引入了大O表示法,它用于表示使用算法解决问题的困难程度。我们在附录D讨论了选择排序、插入排序和递归归并排序。
?调试器附录。本书中包含了Visual Studio和GNU gdb调试附录。
?运算顺序。本书讨论了运算顺序问题,来帮助你避免错误。
?C++风格的//注释。我们使用的是较新的、更简洁的C++风格//注释,而不是老式的C风格/*...*/注释。
?C标准库。我们在1.3节引用了en.cppreference.com/w/c,在这里你可以找到C标准库函数的详细可搜索文件。
C语言安全编程注意事项
经验表明,人们很难创建出可以抵抗病毒、蠕虫等攻击的具有工业强度的系统。如今,通过互联网,这类攻击瞬间就可以对全球范围造成影响,而这些软件漏洞往往来自很容易避免的编程问题。从开发周期的开始就将安全性考虑进来,可以大大减少开发的成本和漏洞。
人们创建了CERT Coordination Center(www.cert.org)来分析和及时应对攻击。CERT(计算机安全应急响应组,Computer Emergency Response Team)标准会被发布和推广,以帮助C语言程序员和其他人实现具有工业强度系统的安全编码标准,这样就可以避免造成开放式系统受到攻击的编程实践。CERT标准将随着新出现的安全问题而不断演变。
我们的代码符合书籍水平的CERT建议。如果你要创建在工业上应用的C语言系统,可以考虑阅读Robert Seacord的《C安全编码标准》(Addison-Wesley Professional,2009)、《C和C++安全编码》(Addison-Wesley Professional,2013),读者可以在www.securecoding.cert.org上免费在线阅读CERT指南。本书的技术评审Seacord也为新的C语言安全编程部分提供了具体的建议。Seacord先生是卡内基梅隆大学软件工程研究所(SEI)CERT的安全编程管理员,他还是卡内基梅隆大学计算机科学系的副教授。
我们在第2章~第13章中各章的最后一节Secure C Programming(C语言安全编程)部分讨论了很多重要的主题,包括运算溢出的测试、无符号整数类型的使用、C标准附录K中的新安全函数、检查标准库函数返回的状态信息的重要性、范围检查、安全随机数的生成、数组边界检查、避免缓冲区溢出的技术、输入验证、避免未定义的行为、返回状态信息的函数和未返回状态信息的类似函数的选择、确保指针总是NULL或者包含有效地址、预处理宏的首选C函数等。
教学方法
本书包含丰富的示例。我们将专注于良好的软件工程并强调程序的清晰性。
语法着色。为了增加可读性,我们为代码添加了语法阴影,这与大多数IDE和代码编辑器给代码的语法添加颜色是类似的。我们采用的语法着色约定是:
注释用常规字体表示。
关键字用粗字体表示。
常量和字面值用比关键字稍浅一点的黑体字来表示。
所有的其他代码用黑体表示。
代码高亮显示。我们在每个源代码程序的关键代码段都放置了一个灰色的矩形框。
使用字体突出显示。为了便于参考,我们用粗体表示每个定义性出现的关键概念和索引的页面引用。我们用加粗的Helvetica字体来强调屏幕组件(例如,File菜单)、用Lucida字体来强调C语言程序文本(例如,int x = 5;)。
目标。每章都包含一个Objectives(本章目标)列表。
插图/图。我们在本书中包含了大量的图表、表格、线条图、流程图、程序和程序输出。
编程技巧。我们提供了编程技巧来帮助你关注程序开发的重要方面。这些技巧和实践是我们在8年编程和企业培训经验中积累的精华。最佳编程实践
最佳编程实践让读者关注那些有助于编写更清晰、更易理解和维护的程序的技术。
常见编程错误
指出这些常见的编程错误可以减少读者犯类似错误的可能性。
错误预防技巧
这些技巧包括揭露和删除程序中bug的建议;大多数技巧描述的是如何预防将bug带入C程序中。
性能技巧
这些技巧强调的是如何让程序运行得更快或者尽量减少它们占用的内存。
可移植性技巧
可移植性技巧可以帮助你编写能够在各种平台上运行的代码。
软件工程意见
软件工程意见强调的是影响软件系统(尤其是大型系统)构建的架构和设计问题。
索引。我们在书中包含了大量的索引,它在你将本书当作参考书使用时尤为有用。我们使用加粗的页号来强调关键术语的定义出现的页码。
本书使用的软件
我们在本书中使用的是免费的GNU C编译器(gcc.gnu.org/install/binaries.html),其中大多数Linux系统都已经预先安装了该编译器,它还可以被安装到Mac OS X、Windows系统和用于Windows桌面的免费Visual Studio Express 2012(www.microsoft.com/express)中。Apple的Xcode开发工具中包含LLVM编译器,Mac OS X用户可以从Mac App Store中免费下载。很多其他免费的C编译器都可以在线获取。
C基础:LiveLessons视频培训产品的第I部分和第II部分
“C基础:LiveLessons视频培训产品的第I部分和第II部分”(2013年秋季上线)介绍了开始使用C语言构建健壮的、强大的软件时需要了解的内容。它包含了十多个小时的与本书同步的专家培训视频。要了解关于Deitel LiveLesssons视频产品的更多信息,请访问
www.deitel.com/livelessons
或者通过deitel@deitel.com联系我们。如果你已经订阅了Safari Books Online(www.safaribooksonline.com),你还可以获取我们的LiveLessons视频。
致谢
我们要感谢Abbey Deitel和Barbara Deitel,他们为这个项目投入了大量时间。我们有幸与Prentice Hall/Pearson的出版专家团队共同完成这个项目。我们要感谢培生科技出版集团的主编Mark L. Taub 17年来给我们的指导和为此付出的精力。我们要感谢Carole Snyder出色地完成了管理审稿过程的工作,感谢Chuti Prasertsith为本书设计了具有创造力和精确度的封面,感谢John Fuller出色地完成了我们的Deitel开发人员系列图书的出版工作。
审稿人员
我们要感谢本书审稿人员的付出,他们在严格的最终期限的压力下完成了对本书文本和程序的审查,并为提高本书的表述方式提供了无数建议,他们是:John F. Doyle博士(印第安纳大学东南分校)、Hemanth H.M.(SonicWALL的软件工程师)、Vytautus Leonavivius(微软)、Robert Seacord(SEI/CERT的安全编码管理员、《C安全编码标准》一书的作者、C编程语言国际标准工作组的技术专家)和José Antonio González Seco(西班牙安达卢西亚议会议员)。
C11是一种强大的编程语言,它可以帮助你快速有效地编写高性能程序。你可以很好地在企业系统开发领域中使用C11,来帮助他们建立业务关键型和任务关键型信息系统。我们真诚地欢迎读者提出可以提高本书质量的意见、批评、更正和建议,请将它们发送到:
deitel@deitel.com
本书的勘误放在:
www.deitel.com/books/cfp
我们希望你享受本书的阅读,就像我们编写本书时那样。
Paul Deitel
Harvey Deitel
作者简介
Paul Deitel,Deitel & Associates有限公司的CEO兼CTO,毕业于麻省理工学院,主修信息技术。在Deitel & Associate有限公司公司工作的过程中,他已经为行业、政府机关和军队客户提供了数百节编程课程,这些客户包括思科、IBM、西门子、Sun Microsystems、戴尔、Fidelity、肯尼迪航天中心、美国国家强风暴实验室、白沙导弹试验场、Rogue Wave Software、波音公司、SunGard Higher Education、北电网络公司、彪马、iRobot、Invensys等。他和本书的合著者Harvey M. Deitel博士是全球畅销编程语言教材、专业书籍和视频的作者。
Harvey Deitel博士,Deitel & Associates有限公司的董事长和首席战略官,在计算机领域中拥有50多年的经验。Deitel博士获得了麻省理工学院电子工程(学习计算)的学士和硕士学位,并获得了波士顿大学的数学博士学位(学习计算机科学)。他拥有丰富的行业和大学教学经验,在1991年与儿子Paul Deitel创办Deitel & Associates有限公司之前,他是波士顿大学计算机科学系的主任并获得了终身任职权。Deitel博士为很多大公司、学术研究机构、政府机关和军方提供了数百场专业编程讲座。Deitel的出版物获得了国际上的认可,并被翻译为繁体中文、简体中文、韩语、日语、德语、俄语、西班牙语、法语、波兰语、意大利语、葡萄牙语、希腊语、乌尔都语和土耳其语。
Deitel & Associates有限公司的企业培训
由Paul Deitel和Harvey Deitel创立的Deitel & Associates有限公司是一家国际知名的写作、企业培训和软件开发公司,该公司专注于计算机编程语言、对象技术、Android和iOS应用程序开发,以及Internet和Web软件技术方面的培训和写作。该公司向全球客户提供了由讲师主导的主要编程语言和平台课程,包括C、C++、Visual C++、Java、Visual C#、Visual Basic、XML、Python、对象技术、互联网和Web编程、Android应用程序开发、Objective-C和iOS应用程序开发,并且还在不断提供其他编程语言和软件开发课程。公司的客户包括一些全球最大的公司、政府机关、军队和学术研究机构。
通过与Prentice Hall/Pearson 37年的合作,Deitel & Associates有限公司出版了一流的专业编程书籍、大学教科书和LiveLessons视频课程。读者可以通过以下邮件地址联系Deitel & Associates有限公司和作者:
deitel@deitel.com
要了解更多Deitel Dive-Into?系列企业培训课程的信息,请访问:
www.deitel.com/training
如果贵机构希望获得关于由讲师主导的现场培训的相关建议,可发送邮件到deitel@deitel.com。
只要订阅Safari Books Online,就可以获取本书的电子版本,订阅地址为:
www.safaribooksonline.com
本书的最后一页会告诉你如何获得45天的免费试用期,这样你就可以访问本书的电子版本了。
个人想购买Deitel书籍和LiveLessons视频培训,可以访问www.deitel.com。公司、政府机关、军队和学术研究组织的大宗团购应该直接与Pearson联系。要了解更多信息,请访问:
www.informit.com/store/sales.aspx

目录

目录 阅读
1 Introduction
2 Introduction to C Programming
3 Control Statements:Part I
4 Control Statements: Part II
5 Functions
6 Arrays
7 Pointers
8 Characters and Strings
9 Formatted Input/Output
10 Structures, Unions, Bit Manipulation and Enumerations
11 File Processing
12 Data Structures
13 Preprocessor
14 Other Topics

读者评论

同系列书

  • Clean Architecture:软件架构与设计匠艺(英文版)

    Robert C. Martin (作者) Robert C. Martin(罗伯特·C·马丁) (译者)

    马丁的简介代码不仅仅是提供选项。在半个世纪的软件环境中,每一种可以想象的类型,马丁告诉你做出什么选择,以及为什么它们对你的成功至关重要。正如你所渴望的,这本书中...

     
  • Effective Java(第2版)英文版

    (美)Joshua Bloch(约书亚·布洛赫) (作者) 无 (译者)

    本书通过78个有效案例,旨在帮助读者深入理解Java,以写出更加清楚、健壮、可重复使用的代码。书中每个章节均包含小论文,针对Java平台和杰出的代码样例,提供了...

    ¥65.00
  • C11编程导论英文版

    (美)Paul Deitel(保罗·戴特尔),(美) Harvey Deitel(哈维·戴特尔) (作者) (译者)

    本书沿用了Deitel特色的“程序实况解说”,深入探讨了C语言和C标准库。通过完整的语法着色、代码高亮、代码演练和程序输出,全面地介绍了测试程序的概念。本书汇集...

    ¥89.00
  • Effective Javascript:编写高质量JavaScript代码的68个有效方法 英文版

    (美)David Herman(大卫·赫尔曼) (作者) 无 (译者)

    本书由资深 JavaScript 技术专家 David Herman 所著。书中基于 JavaScript 标准的新版本前所未有地阐明了 JavaScript ...

    ¥65.00
  • Effective Python:编写高质量Python代码的59个有效方法 英文版

    (美)Brett Slatkin(布雷特·斯拉特金) (作者) 无 (译者)

    本书不是要讲述 Python 的基础编程,而是要帮你掌握 Python 独特的优势和魅力。书中总结了 59个 Python 编程的优秀实践、贴士和捷径,并用真实...

    ¥65.00

相关图书

Python一行流:像专家一样写代码

Christian Mayer (作者) 苏丹 (译者)

本书专注于从初学迈向进阶的Python编码技术:如何像专家一样写出优雅、准确、简洁高效的Python 单行代码;阅读任意一行Python 代码时,如何系统性地对...

¥89.00

剑指Offer(专项强化版):数据结构与算法名企面试题精讲

何海涛 (作者)

本书全面、系统地总结了在准备程序员面试过程中必备的数据结构与算法。本书首先详细讨论整数、数组、链表、字符串、哈希表、栈、队列、二叉树、堆和前缀树等常用的数据结构...

¥89.00

C++服务器开发精髓

张远龙 (作者)

本书从操作系统原理角度讲解进行C++服务器开发所需掌握的技术栈。全书总计9章,第1~2章讲解C++ 11/14/17新标准中的常用特性、新增类库,以及C++开发...

 

PHP编程(第4版)

Rasmus Lerdorf(拉斯马斯·勒多夫), Kevin Tatroe(凯文·塔特罗), Peter MacIntyre(彼得·麦金太尔) (作者) 卢涛 (译者)

PHP是一种被广泛使用的Web编程语言,它简单易用,而且与时俱进,不断进化,提升性能。本书基于PHP 7.4,深入介绍 PHP编程技术,涵盖了 PHP 所有基本...

¥109.00

深入理解Spring Cloud与实战

方剑 (作者)

本书共分10章,主要介绍Spring Cloud各个核心组件的设计原理,以及目前流行的Spring Cloud Alibaba和 Netflix组件,并且剖析S...

¥106.00

基于Kotlin的Spring Boot微服务实战

袁康 (作者)

本书介绍了Kotlin在Spring Boot微服务开发中的实践,并使用Kotlin作为开发语言,介绍了函数式编程思想、Kotlin的语法、Kotlin在常用中...

¥69.30