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

作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。
转载请注明出处。
原文:https://www.jianshu.com/p/60caadd22c88

《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)的递归。要不就用很多动物的名字或图标,特别有意思)。

除了编译器,我们还需要什么工具呢?

就不卖关子了吧,下面列出编程的基本工具:

  • 文本编辑器:Test Editor。用来写源代码的工具。理论上 Windows 操作系统的记事本也可以作为文本编辑器来使用。但是,最好还是用一些更高级点的文本编辑器,比如可以支持代码高亮显示,方便你在代码间跳转等。个人非常推荐的文本编辑器是 Vim、Emacs、VS Code、Atom、Sublime,等等。

  • 编译器: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 的免费或减免优惠,请见 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. 总结


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

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

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

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

5. 第一部分第三课预告


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

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

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容