基本信息
- 原书名:Head First C
- 原出版社: O'Reilly Media
- 作者: (美)David Griffiths Dawn Griffiths
- 译者: 程亦超
- 丛书名: 图灵程序设计丛书
- 出版社:人民邮电出版社
- ISBN:9787115318848
- 上架时间:2013-8-19
- 出版日期:2013 年9月
- 开本:16开
- 页码:588
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > C/Turbo C > C
编辑推荐
想用C代码编写好玩的游戏吗?想成为C代码侦探,去破解重重谜案吗?或是让C代码变成牵线红娘,帮你找到你的梦中情人?哈哈!别着急,David Griffiths和Dawn Griffiths夫妇的这本Head First C将会带你来到这个奇妙的C语言世界:这里没有令人乏味的“学究腔”,没有冗长枯燥的老生常谈,也没有令人望而却步的大堆练习。作者用诙谐、幽默的口吻为你讲述了一个又一个关于C的故事。无论你是C语言学习航程中的新船员,还是经历过大风大浪的老水手,你都能从Head First C中体会到无限乐趣。
内容简介
作译者
在《嗨翻C语言》之前,David写过两本Head First系列的书:Head First Rails和Head First Programming。
你可以在Twitter上“粉”David:
http://twitter.com/dogriffiths。
Dawn Griffiths,在英国一所顶尖的大学开始了她的数学生涯,获得了数学系的荣誉学位,毕业以后投身软件开发行业,迄今已经有15年的IT行业从业经验。
在和David一起写《嗨翻C语言》之前,Dawn写过两本Head First系列的书(《深入浅出统计学》和Head First 2D Geometry),同时还主持过该系列其他几本书。
目录
引子 xxxi
1 C语言入门:进入C语言的世界 1
2 存储器和指针:指向何方? 41
2.5 字符串:字符串原理 83
3 创建小工具:做一件事并把它做好 103
4 使用多个源文件:分而治之 157
C语言实验室1:Arduino 207
5 结构、联合与位字段:创建自己的结构 217
6 数据结构与动态存储:牵线搭桥 267
7 高级函数:发挥函数的极限 311
8 静态库与动态库:热插拔代码 351
C语言实验室2:OpenCV 389
9 进程与系统调用:打破疆界 397
10 进程间通信:沟通的艺术 429
11 网络与套接字:金窝,银窝,不如127.0.0.1的草窝 467
12 线程:平行世界 501
C语言实验室3:爆破彗星 523
i 饭后甜点:十大遗漏知识点 539
ii 话题汇总:总复习 553
译者序
他们只花了一个月的时间就用汇编语言写出了操作系统的原型。同事Peter Neumann看到后,戏称这个系统为Unics②。Unix这个名字典出于此。
1971年,第一版的Unix已经能够支持两名用户在PDP-11上玩《星际之旅》了,但因为当时的Unix是用汇编语言写的,无法移植到其他机器上,所以他们决定用高级语言重写Unix,可当时的高级语言无论从运行效率还是功能上都无法满足他们的需要。Thompson先是在BCPL的基础上萃取出了B语言,Ritchie又在B的基础上进行了重新设计,这才有了今天大名鼎鼎的C语言。
而现在你手上的就是一本关于C语言的书。
本书分为三个部分。
第1章到第4章是基础知识,包括基本语法、指针、字符串、小工具与源文件。
第5章到第8章为进阶内容,有结构、联合、数据结构、堆、函数指针、动/静态链接。
最后四章是高级主题,内容涵盖了系统调用、进程间通信、网络编程和多线程。
每部分结束后还用一个实验来提高读者的动手能力。
本书最大的特点是每次在引出新概念前都会先提出一个问题,让读者在知道怎样做(how)之前先知道为什么这么做(why),并在解决问题的过程中不断提出新问题,让读者去解决,从而加深理解;书中还设有很多“问答”环节,提出并回答了一些读者在学习过程中可能会遇到的问题。除此之外,作者还使用了大量拟人手法,例如让编译器化身公众人物在访谈节目中现身说法,抑或让静态库和动态库对簿公堂。谈笑风生间,它们的特点,跃然纸上。无论你是音乐发烧友、推理迷,还是填字游戏爱好者,都可以在这本书中找到吸引你的元素。
两个改变世界的发明起初不过是为了一个游戏,从这个角度看,这本同样趣味十足的《嗨翻C语言》,能否算是对于这种精神的一种延续呢?
① Multics全称为MULTiplexed Information and Computing System(多路信息计算系统)是1964年由贝尔实验室、MIT和通用电气共同研发的一套安装在大型机上的多人多任务操作系统。因为工作进度缓慢,贝尔实验室于1969年退出该计划。
② 意思是UNiplexed Information and Computing System(单路信息计算系统),用来影射Multics。
我在翻译的过程中力求真实传达作者的意图,无论是一个技术上的概念还是一段幽默。为了减轻阅读压力,我还将书中部分代码中的字符串也译为了中文,希望不是画蛇添足。
最后,感谢王琛、邱瑀庭等好友提出的建议;感谢作者David Griffiths耐心解答我提出的每一个问题。感谢图灵的李洁、李松峰、傅志红老师以及各位审读老师提供的帮助与支持。
程亦超
2012年12月17日
媒体评论
——Dave Kitabjian,NetCarrier Telecom软件开发总监
“《嗨翻C语言》是一本用经典‘Head First’的方式轻松介绍C语言的教材。图片、笑话、练习以及实践让读者逐渐并稳固地掌握C语言的基础知识……由此,读者可以进入Posix和Linux系统编程中更高级的技术殿堂。”
——Vince Milner,软件工程师
书摘
如何运行程序?
C语言是一种编译型语言,也就是说计算机不会直接解释代码,而是需要将给人阅读的源代码转化(或编译)为机器能够理解的机器代码,这样计算机才能够执行。
为了编译代码,需要一个叫编译器的程序。GNU编译器套件(GNU Compiler Collection),也叫gcc,是最流行的C编译器之一。gccW以在很多操作系统中使用,而且除了C语言,它还可以编译很多其他语言,最重要的是,它是完全免费的。
下面是用9cc编译并运行程序的过程:
1将前一页那道“代码冰箱贴”练习中的代码保存在一个叫cards.c的文件中。
2在命令提示符或终端中使用gcc cards.c—o cards命令进行编译。
3在Windows命令提示符中输入cards或在Mac和Linux终端中输入./cards运行程序。