做者 谢恩铭,公众号「程序员联盟」。 转载请注明出处。 原文:www.jianshu.com/p/60caadd22…html
《C语言探索之旅》全系列git
上一课是 C语言探索之旅 | 第一部分第一课:什么是编程? ,这一课咱们就正式进入 C语言编程的正题了。程序员
这一课咱们将回答如下问题:github
咱们须要什么软件来编程呢?编程
这一课你们能够轻松地度过,由于没有什么难点(不过也有很多知识点)。咱们会花点时间来认识一些经常使用的编程软件。小程序
应该好好享受这一课,由于下一课开始咱们就要一块儿写程序了,因此该喝咖啡的喝咖啡,该吃烤鸡的吃烤鸡,休息好了,才能上阵。vim
依你看,什么软件对编程来讲是必要的呢?若是你认真学了上一课,那你至少能够说出一种吧。xcode
对了,就是编译器。这个重要的程序能够把你的源代码(用高级语言(好比 C语言)写的指令)转换成电脑能够理解的二进制码(只包含 0 和 1 的,例如 01100110001111011101010)。markdown
上一课咱们也提了一下,每种高级语言都有对应的编译器(固然对于 Python 这样的解释性语言,就不须要编译了),光是 C语言的编译器就有不少。app
比较经常使用的有 GCC(GNU C Compiler。GNU 是国际著名的自由软件基金会,GNU 是“GNU is Not Unix”(GNU 不是 Unix)的递归缩写法。
老外老是那么顽皮,起名字也喜欢整一些编程的知识,好比 Linux 就是“Linux Is Not Unix”(Linux 不是 Unix)的递归。要不就用不少动物的名字或图标,特别有意思)。
除了编译器,咱们还须要什么工具呢?
就不卖关子了吧,下面列出编程的基本工具:
文本编辑器:Text Editor。用来写源代码的工具。理论上 Windows 操做系统的记事本或者 Linux 下的 Nano 编辑器均可以做为文本编辑器来使用。可是,最好仍是用一些更高级一点的文本编辑器,好比能够支持代码高亮显示,方便你在代码间跳转,等。我的推荐的文本编辑器是 VS Code、Vim 或 Emacs。这几个文本编辑器真的很是强,跨平台(Windows、Linux、macOS,等),能够自由定制,各类快捷键组合,有的还能够收发邮件,看视频,浏览网页,浏览 PDF,没有作不到,只有想不到(略有夸张...),可让你编辑代码很是高效。Vim 和 Emacs 是老牌的文本编辑器,粉丝不少。VS Code 是微软在 2015 年发布的一款免费开源的现代化轻量级代码编辑器,如今也很是火。
编译器:Compiler。已经提过了,用来转换(或叫“编译”)你的源代码成为二进制码。
调试器:Debugger。用来跟踪、发现程序里的错误的工具。这里出现一个新名词,调试(debug)。bug 是英语“臭虫,虫子”的意思,de 在英语里是一个表示“分离,除掉”的前缀,因此 debug 的意思就是“除臭虫”。通常把程序里的错误或者缺陷叫作 bug,听说是由于传奇女程序员 Grace Hopper(格莱斯.霍普)有一次在 MARK II 计算机(就是那种早期的比较庞大的电脑)中发现了一只飞蛾,这只飞蛾致使了这台电脑死机(夹在电脑的继电器之间),霍普用镊子把飞蛾夹出来,用透明胶布贴到笔记本上,并注明“第一个发现虫子(bug)的实例”。今后,人们就沿用了这个有趣的称呼,用 debug 来表示排除程序错误的行为。如今霍普的笔记本,连同那只“呆萌”的飞蛾,陈列在美国历史博物馆里。在 Linux 下,经常使用的调试器是 GDB(GNU Debugger)。
固然,若是你有冒险精神,喜欢挑战,也能够不用调试器(经过一些小技巧也是能够本身找到错误所在的)。可是,我想通常来讲你是会须要调试器的。
因此,咱们就有两个选择了:
分开使用文本编辑器,编译器和调试器这三种工具。虽然复杂一些,可是也行得通。在 Linux 环境下,很多程序员仍是喜欢用这种方式来编程。可能不是“装”,要的就是这个 feel,倍爽儿。
使用一种软件,这种软件集合了这三种工具的功能。这种软件被称为 IDE(是 Integrated Development Environment 的缩写,表示“集成开发环境”)。
一开始你可能会难以抉择,到底用哪一种呢?即便选择了用 IDE,也会纠结到底用哪个 IDE 好呢。
其实咱们能够确定的是:不论你选择哪一种工具,你均可以编写你想要的程序。只是效率,我的习惯和特定平台要求不一样罢了。
其实,你也能够用 VS Code、Vim、Emacs 这样的文本编辑器,经过安装一些插件,使其可以编译运行 C语言的程序。网上有很多图文教程,请你们自行搜索。
我以为有必要向你们展现几个最著名的 IDE:
Clion :跨平台的 IDE。目前我我的认为最棒的 C语言或 C++语言的 IDE,由著名的 JetBrains 公司开发。JetBrains 的明星 IDE 还有 PyCharm(适用于 Python 语言),WebStorm(适用于 JavaScript 语言),IntelliJ IDEA(适用于 Java 和 Kotlin 语言),GoLand(适用于 Go语言),等等。JetBrains 公司还开发了 Kotlin 语言,还和 Google 公司合做发行了 Android 的最强开发 IDE:Android Studio。JetBrains 的 Clion 这款 IDE 很是强大,用户体验很是好。 缺点:基础版本是收费的。不过,若是你是学生或教师,或者目的是课堂教学,或者你有不错的开源项目,或者若是你是,能够享受 JetBrains 的免费或减免优惠,请见 www.jetbrains.com/idea/buy/#d… 。
Eclipse:免费,开源,跨平台的 IDE。老牌的 IDE 了,Eclipse 也是一个开源基金会,旗下有很多优秀的开源项目。若是要用 Eclipse 来开发 C语言或 C++语言的程序,须要下载安装 Eclipse CDT 这款 IDE。 缺点:近几年感受被 JetBrains 公司的 IDE 抢了风头。我早年编程或开发 Android 应用的时候使用过 Eclipse,但如今我已经彻底投向 JetBrains 的怀抱(Python 编程我用 PyCharm,C/C++ 编程我用 CLion,Java/Kotlin 编程我用 IntelliJ IDEA,Android 开发我用 Android Studio,等等),由于 JetBrains 的 IDE 真的都太好用了。不过目前仍是有很多人使用 Eclipse 来进行开发的。
Code::Blocks :免费,开源,跨平台的 IDE。Code::Blocks 的开发环境搭建起来很是快,几乎不须要什么配置。 缺点:近几年 Code::Blocks 更新有点缓慢,只有 Linux 和 Windows 的版本有陆陆续续的更新。感受这款开源社区维护的 IDE 可能人手和资金有不足的趋势。
Visual Studio :简称 VS。VS 功能很完备,并且调试器很强大。 缺点:只能运行在 Windows 操做系统上,安装体积大。基础版本是收费的。有一个 Visual Studio Community 的社区版本是免费的。
Xcode :做为苹果的编程当家 IDE,不得不说 Xcode 作得至关不错。能够用来开发基本的小程序,也能够编写 iPhone、iPad 和 macOS 的 app(模拟器速度超快),和智能手表应用,还能够和其余如 Unity 3D 引擎配合来编写游戏。 缺点:只能运行在苹果 macOS 操做系统上,安装体积大。
对于各个平台的学习 C语言的用户,我我的的一些建议是:
Windows 用户:能够安装 Code::Blocks,或者 Visual Studio,或者 Eclipse CDT,等等。
Linux 用户:能够安装 Code::Blocks,或者 Eclipse CDT,等等。固然了,若是你是 C语言的初学者,Linux 下其实我比较推荐用文本编辑器来写 C语言的源代码,而后用 GCC 来编译,用 GDB 来调试 C 语言的程序。要入门并提升 Linux,能够看我在慕课网的实战课程《Linux核心技能与应用》,或者专栏《Linux命令行与Shell脚本编程大全》。
macOS 用户:能够安装 Xcode,或者 Eclipse CDT,或者 Visual Studio for Mac,等等。
学习这门 C语言的课程,你们能够随意选用本身最喜欢和使用最顺手的 IDE,网上也有各类 IDE 的下载安装的图文教程,我就不一一演示了。我但愿你们可以下载安装本身最喜欢和用起来最顺手的 IDE,经过 IDE 官网的教程或者网上的图文教程来安装配置好 IDE,并学会如何建立一个 C语言的项目,并运行。 固然,我前面提过,你也能够用 VS Code、Vim、Emacs 这样的文本编辑器,经过安装一些插件,使其可以编译运行 C语言的程序。 本课程中我会提供 C语言的代码。IDE 的选择我会使用我的喜欢的 IDE 来作演示。
一个程序要从开始编写到可以运行,通常来讲须要三种工具:文本编辑器,编译器,调试器(固然对于 Python 这样的解释性语言,就不须要编译了)。
咱们能够分开使用文本编辑器,编译器,调试器这三种工具来完成任务。可是比较方便的是使用IDE(集成开发环境,混合了这三者)来开发。
IDE 只是工具。你们可使用本身熟悉和喜欢的 IDE 来进行本课程的学习。
今天的课就到这里,一块儿加油吧。
今天的课就到这里,一块儿加油吧!
下一课一块儿来写咱们的第一个 C语言的程序咯。
我是 谢恩铭,公众号「程序员联盟」运营者,慕课网精英讲师 Oscar 老师,终生学习者。 热爱生活,喜欢游泳,略懂烹饪。 人生格言:「向着标杆直跑」