作者 谢恩铭,慕课网精英讲师Oscar老师。
转载请注明出处。
内容简介
- 前言
- 编程的必要工具
- 选择你的 IDE
- 总结
- 第一部分第三课预告
1. 前言
上一课是 C语言探索之旅 | 第一部分第一课:什么是编程? ,这一课我们就正式进入 C语言编程的正题了。
这一课我们将回答以下问题:
我们需要什么软件来编程呢?
这一课大家可以轻松地度过,因为没有什么难点(不过也有不少知识点)。我们会花点时间来认识一些常用的编程软件。
应该好好享受这一课,因为下一课开始我们就要一起写程序了,所以该喝咖啡的喝咖啡,该吃烤鸡的吃烤鸡,休息好了,才能上阵。
2. 编程的必要工具
依你看,什么软件对编程来说是必要的呢?如果你认真学了上一课,那你至少可以说出一种吧。
对了,就是编译器。这个重要的程序可以把你的源代码(用高级语言(比如 C语言)写的指令)转换成电脑可以理解的二进制码(只包含 0 和 1 的,例如 01100110001111011101010)。
上一课我们也提了一下,每种高级语言都有对应的编译器(当然对于 Python 这样的解释性语言,就不需要编译了),光是 C语言的编译器就有很多。
比较常用的有 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语言的程序。网上有不少图文教程,请大家自行搜索。
3. 选择你的 IDE
我觉得有必要向大家展示几个最著名的 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 的免费或减免优惠,请见 https://www.jetbrains.com/idea/buy/#discounts?billing=yearly 。 -
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 来做演示。
4. 总结
-
一个程序要从开始编写到能够运行,一般来说需要三种工具:文本编辑器,编译器,调试器(当然对于 Python 这样的解释性语言,就不需要编译了)。
-
我们可以分开使用文本编辑器,编译器,调试器这三种工具来完成任务。但是比较方便的是使用IDE(集成开发环境,混合了这三者)来开发。
-
IDE 只是工具。大家可以使用自己熟悉和喜欢的 IDE 来进行本课程的学习。
今天的课就到这里,一起加油吧。
5. 第一部分第三课预告
今天的课就到这里,一起加油吧!
下一课一起来写我们的第一个 C语言的程序咯。