原文:Exercise 0: The Setuphtml
译者:飞龙git
在这一章中,你将为C语言编程配置好你的系统。一个好消息是对于全部使用Linux或者Mac的人,你的系统是为C语言编程而设计的。C语言的创造者也对Unix操做系统的创造作出了贡献,而且Linux和OSX都是基于Unix的。事实上,安装工做会很是简单。程序员
对于Windows上的用户,我有一个坏消息:在Windows上学习C很是痛苦。你能够在Windows上编写C代码,这并非问题。问题是全部的库、函数和工具都和其它的C语言环境有些诧异。C来自于Unix,而且和Unix平台配合得比较好。恐怕这是一个你并不能接受的事实。github
然而你并不须要为此恐慌。我并非说要彻底避免Windows。然而我说的是,若是你打算已最短的时间来学习C,你须要接触Unix并适应它。这同时也对你有帮助,由于懂得一些Unix的知识,也会让你懂得一些C编程的习惯,以及扩充你的技能。macos
这也意味着每一个人都须要使用命令行。嗯,就是这样。你将会进入命令行而且键入一些命令。不要为此感到惧怕,由于我会告诉你要键入什么,以及结果应该是什么样子,因此你实际上会学到不少东西,同时扩充本身的技能。编程
在多数Linux系统上你都须要安装一些包。对于基于Debian的系统,例如Ubuntu你须要使用下列命令来安装一些东西:vim
$ sudo apt-get install build-essential
上面是命令行提示符的一个示例。你须要接触到能输入它的地方,找到你的“终端”程序而且运行它。接着,你会看到一个相似于$
的Shell提示符,而且你能够在里面键入命令。不要键入$
,而是它后面的东西。xcode
下面是在基于RPM的Linux系统,例如Fedora中执行相同安装工做的方法:编辑器
$ su -c "yum groupinstall development-tools"
一旦你运行了它,它会正常工做,你应该可以作本书的第一个练习。若是不能请告诉我。函数
在 Mac OSX上,安装工做会更简单。首先,你须要从苹果官网下载最新的XCode
,或者找到你的安装DVD并从中安装。须要下载的文件很大,要花费很长时间,因此我推荐你从DVD安装。同时,上网搜索“安装xcode”来指导你来安装它。
一旦你安装完XCode,可能须要重启你的电脑。你能够找到你的中断程序而且将它放到快捷启动栏中。在本书中你会常常用到中断,因此最好将它放到顺手的区域。
对于Windows用户,你须要在虚拟机中安装并运行一个基本的Ubuntu Linux系统,来作本书的练习,而且避免任何Windows中安装的问题。
译者注:若是你的Windows版本是Win10 14316及以后的版本,能够开启Ubuntu子系统来获取Linux环境。
对于程序员来讲,文本编辑器的选择有些困难。对于初学者我推荐他们使用Gedit
,由于它很简单,而且能够用于编写代码。然而,它在特定的国际化环境中并不能正常工做。若是你已是老司机的话,你能够选用你最喜欢的编辑器。
出于这种考虑,我打算让你尝试一些你所在平台上的标准的用于编程的文本编辑器,而且长期使用其中你最喜欢的一个。若是你已经用了Gedit而且很喜欢他,那么久一致用下去。若是你打算尝试一些不一样的编辑器,则赶快尝试并选择一个。
最重要的事情是,不要纠结于寻找最完美的编辑器。文本编辑器几乎都很奇怪,你只须要选择一个并熟悉它,若是你发现喜欢别的编辑器能够切换到它。不要在挑选它和把它变得更好上面花不少时间。
这是亦能够尝试的一些编辑器:
Linux和OSX上的Gedit
。
OSX上的TextWrangler
。
能够在终端中运行并几乎在任何地方工做的Nano
。
每一个人均可能选择一款不一样的编辑器,这些只是一部分人所选择的开源编辑器。在找到你最喜欢的那个以前,尝试其中的一些,甚至是一些商业编辑器。
IDE,或者“集成开发工具”,会使你变笨。若是你想要成为一个好的程序员,它会是最糟糕的工具,由于它隐藏了背后的细节,你的工做是弄清楚背后发生了什么。若是你试着完成一些事情,而且所在平台根据特定的IDE而设计,它们很是有用,可是对于学习C编程(以及许多其它语言),它们没有意义。
注
若是你玩过吉他,你应该知道TAB是什么。可是对于其它人,让我对其作个解释。在音乐中有一种曲谱叫作“五线谱”。它是通用、很是古老的曲谱,以一种通用的方法来记下其它人应该在乐器上弹奏的音符。若是你弹过钢琴,这种曲谱很是易于使用,由于它几乎就是为钢琴和交响乐发明的。
然而吉他是一种奇怪的乐器,它并不能很好地适用这种曲谱。因此吉他手一般使用一种叫作TAB(tablature)的曲谱。它所作的不是告诉你该弹奏哪一个音符,而是在当时应该拨哪根弦。你彻底能够在不知道所弹奏的单个音符的状况下学习整首乐曲,许多人也都是这么作的,可是若是你想知道你弹的是什么,TAB是毫无心义的。
传统的曲谱可能比TAB更难一些,可是会告诉你如何演奏音乐,而不是若是玩吉他。经过传统的曲谱我能够在钢琴上,或者在贝斯上弹奏相同的曲子。我也能够将它放到电脑中,为它设计所有的乐谱。可是经过TAB我只能在吉他上弹奏。
IDE就像是TAB,你能够用它很是快速地编程,可是你只可以用一种语言在一个平台上编程。这就是公司喜欢将它卖给你的缘由。它们知道你比较懒,而且因为它只适用于它们本身的平台,他们就将你锁定在了那个平台上。
打破这一循环的版本就是不用IDE学习编程。一个普通的文本编辑器,或者一个程序员使用的文本编辑器,例如Vim或者Emacs,能让你更熟悉代码。这有一点点困难,可是终结果是你将会熟悉任何代码,在任何计算机上,以任何语言,而且懂得背后的原理。
译者注:和Python不一样,使用编辑器和命令行编写并编译C语言存在依赖配置问题。对于Python这种脚本语言,项目中文件之间的全部依赖都存在于代码中,命令行中只须要运行
Python
,解释器便于自动加载依赖。可是在C的Makefile中你须要手动配置.c
文件的依赖,若是文件多于5个会很是麻烦。对此你须要找到一种通用的解决方案,或者仍是直接使用IDE。