C语言探索之旅 | 第一部分第二课:工欲善其事,必先利其器

1,579 阅读9分钟

作者 谢恩铭,公众号「程序员联盟」。 转载请注明出处。 原文:www.jianshu.com/p/60caadd22…

《C语言探索之旅》全系列

内容简介


  1. 前言
  2. 编程的必要工具
  3. 选择你的 IDE
  4. 总结
  5. 第一部分第三课预告

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 CodeVimEmacs。这几个文本编辑器真的非常强,跨平台(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)。

霍普的笔记本和光荣载入史册的飞蛾

当然,如果你有冒险精神,喜欢挑战,也可以不用调试器(通过一些小技巧也是可以自己找到错误所在的)。但是,我想一般来说你是会需要调试器的。

所以,我们就有两个选择了:

  1. 分开使用文本编辑器,编译器和调试器这三种工具。虽然复杂一些,但是也行得通。在 Linux 环境下,不少程序员还是喜欢用这种方式来编程。可能不是“装”,要的就是这个 feel,倍爽儿。

  2. 使用一种软件,这种软件集合了这三种工具的功能。这种软件被称为 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 的免费或减免优惠,请见 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 来做演示。

4. 总结


  1. 一个程序要从开始编写到能够运行,一般来说需要三种工具:文本编辑器,编译器,调试器(当然对于 Python 这样的解释性语言,就不需要编译了)。

  2. 我们可以分开使用文本编辑器,编译器,调试器这三种工具来完成任务。但是比较方便的是使用IDE(集成开发环境,混合了这三者)来开发。

  3. IDE 只是工具。大家可以使用自己熟悉和喜欢的 IDE 来进行本课程的学习。

今天的课就到这里,一起加油吧。

5. 第一部分第三课预告


今天的课就到这里,一起加油吧!

下一课:C语言探索之旅 | 第一部分第三课:你的第一个程序

下一课一起来写我们的第一个 C语言的程序咯。


我是 谢恩铭,公众号「程序员联盟」运营者,慕课网精英讲师 Oscar 老师,终生学习者。 热爱生活,喜欢游泳,略懂烹饪。 人生格言:「向着标杆直跑」