-- 作者 谢恩铭 转载请注明出处

上一课C语言探索之旅 | 开宗明义及第一部分第一课:什么是编程?中,我们说了,程序员需要具备三个特质:

耐心,逻辑,冷静。

我突然感觉到还需要第四大特质---谦虚 : 相当重要。

因为你只会发现你越学习越觉得不足,外面的世界太大了,编程的前辈和大牛太多,新技术永远比你学习速度快地涌现,所以永远保持一颗初心,不得瑟(偶尔嘚瑟一小下还是不无裨益的嘛)。

凡事多感恩,一方面感谢帮助过我们的人,也感谢给我们逆耳忠言的人,也要感谢陪伴我们的电脑和开源社区等。

其实,我一直觉得程序员是一个不错的职业。虽然可能程序员有不少职业病,例如话少,宅,呆萌,害羞等。

但是程序员比较单纯,这是跟与我们朝夕相伴的电脑分不开的。因为机器不会说假话,1就是1,0就是0,绝对忠诚,高效和不变心(芯)。

所以,和机器长期打交道之后的程序员也变得不是那么有心机。

之前网上有一篇文章,说找程序员做男女朋友的好处,挺有意思。

跟公司里几个同事相处下来也发现,程序员真的都很有趣,很可爱,很童真。

只是在国内程序员还不是太被重视,但我相信随着中国的强大,会改观的。

好了言归正传。在上一课《什么是编程》后,这一课我们就正式进入C语言编程的正题了。

这一课我们回答以下问题:

我们需要什么软件来编程呢?

这一课大家可以很轻松地度过,因为没有什么难点。我们会花点时间来认识一些常用的编程软件。

应该好好享受这一课,因为下一课开始我们就要一起写程序了,所以该喝咖啡的喝咖啡,该吃烤鸡的吃烤鸡,休息好了,才能上阵。

编程的必要工具

依你看,什么软件对编程来说是必要的呢?如果你认真学了上一课,那你至少可以说出一种吧。

对了,就是编译器。这个重要的程序可以把你的源代码(用高级语言,比如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)的递归。要不就用很多动物的名字或图标,特别好玩)。

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

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

  • 文本编辑器:用来写源代码的工具。理论上Windows操作系统的记事本或者Linux下的Nano编辑器都可以作为文本编辑器来使用。但是,最好还是用一些更高级点的文本编辑器,比如可以支持代码高亮显示,方便你在代码间跳转等。个人推荐的文本编辑器是Emacs或Vim,真的非常强,跨平台(苹果Mac,Windows,Linux等),自由定制,各种快捷键组合,收发邮件,看视频,浏览网页,浏览PDF,没有做不到,只有想不到(略有夸张...),可以让你编辑代码非常高效。还有Sublime Text, Notepad++也是挺好的,经过配置和安装一些插件,可以很强大。

  • 编译器:已经提过了,用来转换(或叫编译)你的源代码成为二进制码。

  • 调试器:Debugger,用来跟踪、发现程序里的错误的工具。这里出现一个新名词,调试(Debug)。bug是英语“臭虫,虫子”的意思,de在英语里是一个表示“分离,除掉”的前缀,所以Debug的意思就是“除臭虫”。一般把程序里的错误或者缺陷叫做bug(臭虫),据说是因为传奇女程序员Grace Hopper(格莱斯.霍普)有一次在MARK II计算机(就是那种早期的比较庞大的电脑)中发现了一只飞蛾,这只飞蛾导致了这台电脑死机(夹在电脑的继电器之间),霍普用镊子把飞蛾夹出来,用透明胶布贴到笔记本上,并注明“第一个发现虫子(bug)的实例”。从此,人们就沿用了这个有趣的称呼,用debug表示排除程序错误的行为。现在霍普的笔记本,连同那只呆萌的飞蛾,陈列在美国历史博物馆里。

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

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

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

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

  • 使用一种软件,这种软件集合了这三种工具的功能。这种软件被称为IDE(Integrated Development Environment 集成开发环境)。

一开始你可能会难以抉择,到底用哪种呢?即使选择了用IDE,也会纠结到底用哪一个IDE好呢。

其实我们可以肯定的是:不论你选择哪种工具,你都可以编写你想要的程序。只是效率,个人习惯和特定平台要求不同罢了。

个人浅见:
如果刚接触C语言,尽量在Linux的命令行里学习C语言编程。一开始不要怎么用IDE。因为IDE做得太好了,都有提示,代码自动补全,自动帮你添加代码,你就不能学到很多,也记不牢。等编程水平好了一些,再用IDE不迟,那个时候IDE可以提高你的编程效率。一开始用Emacs或者Vim编写C语言,用GCC编译C语言,用GDB(GNU Debugger)调试C语言,是不错的选择。

当然了,我们还是会花比较多的篇幅介绍几个常用的IDE。

选择你的IDE

我们觉得有必要向大家展示几个最著名的IDE,这几个都是免费的(只买对的,不选贵的):

  • Code::Blocks:个人比较喜欢的一款IDE,免费,开源,跨平台。在之后的课程里,我们会用Code::Blocks来做开发,因为Code::Blocks的开发环境搭建起来太快了,不需要什么配置。
    可以运行在苹果Mac,Windows,Linux等大多数操作系统上。

  • Visual Studio:基础版本是收费的。但是幸好有一个Visual Studio Express的版本是免费的。VS功能很完备,而且调试器很强大。
    只能运行在Windows操作系统上。

  • Xcode:作为苹果的当家IDE,不得不说Xcode真的做得太棒了。可以用来开发基本的小程序,也可以编写iPhone和iPad的App(模拟器速度超快),和智能手表应用,还可以和其他如Unity 3D引擎配合来编写游戏。
    只能运行在苹果Mac OS X操作系统上。

Code::Blocks

Code::Blocks是一款很不错的IDE,不过目前只有英文版,当然网上也有汉化版本,不过既然学编程,就尽量把英语这关过了,也不需要太厉害的英语,基础就好。毕竟汉化版有的翻译不到位,可能会影响使用。而且好的编程资源基本都是英语的。

下载Code::Blocks

先去Code::Blocks的官方下载页面:http://www.codeblocks.org/downloads/binaries

2016年1月28日更新了16.01版,不过可惜的是Mac的版本还是停留在13.12

  • Windows用户请下载 .exe 的文件,请注意要下载名字里有 mingw 的那个(codeblocks-16.01mingw-setup.exe),因为如果没有mingw这几个字母的版本不包含编译器,就会很麻烦。

  • Linux用户请下载对应你的操作系统的版本。例如为Ubuntu系统,可以下载 https://launchpad.net/~damien-moore/+archive/ubuntu/codeblocks-stable

  • 苹果Mac用户请下载 CodeBlocks-13.12-mac.zip

安装运行Code::Blocks

Code::Blocks的安装太简单了,就跟安装QQ没什么区别,一路默认到底就好。

安装完之后双击运行,你可以看到如下图的界面:

Codeblocks 16.01

上图中标注了四个区域:

  1. 工具栏:有很多按钮,但只有几个是真正我们时常用到的。
  2. 项目文件列表区:左边的栏里面显示了你的项目的所有文件
  3. 主界面:写代码的地方
  4. 通知栏:会看到运行的错误,编译的问题等等

如何来创建一个C语言基本的控制台应用程序呢?

首先到菜单里,File -> New -> Project,会打开如下的窗口:

创建新项目

可以看到,Code::Blocks支持非常多的程序类型,这些程序类型用到不同的库,比如SDL(开发2D程序),OpenGL(开发3D程序),Qt和wxWidgets,等等。

目前,这些图标很多都只是好看而已,因为你还没安装对应的库,所有不能用。

我们会在后续课程开发基于SDL库的游戏。暂时我们只用最基本的Console application(控制台应用,简单来说就是会弹出一个框,里面显示程序运行的结果,你也可以输入东西)。

选择 Console application,点击Go按钮到下一步:

项目配置

“Project Title”里面填写你要创建的项目名称,我们填的是著名的 HelloWorld。“Folder to create project in” 是选择项目存放的路径。

Project filename是指项目文件名称,可以看到是.cbp结尾的文件类型,cbp是Code Blocks Project的首字母缩写,表示“Code::Blocks项目”。

点击Next到下一步:

进一步配置

这里我们不必更改什么,默认就好。点击Finish(完成)结束配置,Code::Blocks就会创建你的第一个项目了。

运行结果

打开Sources里的main.c这个C语言的源代码文件,点击上面工具栏里有一个绿色的三角形按钮,运行程序,它会提示你是否要编译,点击“yes”,运行起来后我们的第一个控制台程序输出

Hello World!

Visual Studio

下载 Visual Studio Express(免费版),去官方下载页面 (当然你也可以用正式版的,付费即可使用)

http://www.visualstudio.com/products/visual-studio-express-vs

选择适合你的操作系统的版本来下载。

安装完运行后应该是与Code::Blocks类似的布局。

Visual Studio

Xcode

Mac操作系统里有不少IDE,但是Xcode却是广大使用苹果程序员的最爱。

不是所有的苹果用户都是程序员,所以苹果没有在Mac系统里预装Xcode,你需要到Mac App Store(应用商店)下载Xcode(需要有苹果账户,没有可以注册一个,免费的)。

安装很方便,只要去App Store搜索Xcode,然后点击Install(安装),就安装到应用程序里了。将Xcode运行起来

启动界面

然后选择 Create a new Xcode project(创建一个新的Xcode项目),会弹出如下窗口

选择项目模板

选择 OS X -> Application -> Command Line Tool,点击Next到下一步

项目基本配置信息

Project Name里填写项目名称,我们填了HelloWorld。Language(语言)选择 C 语言,点Next下一步,会让你选择项目文件夹的存放路径,随便选择。然后点击Finish完成。

项目文件

项目打开之后,点击 三角形 按钮,运行,可以看到输出了

Hello World!

总结

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

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

  3. Code::Blocks,Visual Studio(或Visual C++),Xcode是最著名的IDE,当然还有很多优秀的IDE(例如 Eclipse),就不一一介绍了。IDE只是工具。

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

下回预告

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

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

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

  1. Python探索之旅 | 第一部分第二课:安装Python和Python的常用开发软件

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub). 转载请注明出处. 原文:https://www.jianshu.com/p/68fcd46254f5 <Python探索之旅&g ...

  2. C++ 探索之旅 | 第一部分第二课:C++ 编程的必要软件

    -- 作者 谢恩铭 转载请注明出处 <C++探索之旅>全系列 内容简介 前言 编程的必要工具 选择你的IDE 总结 第一部分第三课预告 1. 前言 经过上一课 C++探索之旅 | 第一部分 ...

  3. C++探索之旅 | 第一部分第二课:C++编程的必要软件

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub). 转载请注明出处. 原文:https://www.jianshu.com/p/bcdfbf661888 <C++探索之旅>全 ...

  4. Linux 探索之旅 | 第一部分第二课:下载 Linux,免费的噢

    -- 作者 谢恩铭 转载请注明出处 内容简介 第一部分第二课:下载Linux,免费的噢 第一部分第三课预告:测试并安装Ubuntu 下载Linux,免费的噢 大家好,上一课 Linux探索之旅 | 开 ...

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

    作者 谢恩铭,公众号「程序员联盟」. 转载请注明出处. 原文:https://www.jianshu.com/p/c73fecacd006 <C语言探索之旅>全系列 内容简介 前言 控制台 ...

  6. c语言min函数_C语言探索之旅 | 第一部分第十课:第一个C语言小游戏

    内容简介 前言 准备工作和建议 我的代码 改进方案 第一部分第十一课预告 1. 前言 上一课是 C语言探索之旅 | 第一部分第九课:循环语句 . 经过前面这么多课的努力,我们终于迎来了第一个比较正式的 ...

  7. shell 做加法运算_C语言探索之旅 | 第一部分第七课:运算那点事

    上一课是 C语言探索之旅 | 第一部分第六课:变量的世界(三),显示变量内容 今天,我们一起来学习 C语言(对大多数编程语言也类似)中的运算. 之前的课中,我们已经说过:电脑是一台"笨笨&q ...

  8. C++ 探索之旅 | 第一部分第一课:什么是 C++

    -- 作者 谢恩铭 转载请注明出处 <C++探索之旅>全系列 内容简介 开宗明义 什么是C++ 什么是程序 编程语言 C++与其他语言的比较 C++的历史 C++经典书籍 总结 第一部分第 ...

  9. C++探索之旅 | 第一部分第一课:什么是C++

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub). 转载请注明出处. 原文:https://www.jianshu.com/p/a8c3a44f57ef <C++探索之旅>全 ...

最新文章

  1. 压力变动力,存储追求高效率
  2. file_get_contents高級用法
  3. Latex:表格制作全攻略
  4. 机器学习物语(1):世界观设定
  5. Ajax联手SOA打造企业级应用
  6. abap调用Linux命令,ABAP中输入write命令使用
  7. ASP.NET Core 2.1 : 图解路由(2.1 or earler)
  8. “约见”面试官系列之常见面试题之第五十八篇之join和split(建议收藏)
  9. 信息学奥赛一本通C++语言——1028:字符菱形
  10. 数据结构与算法顺序表数组版
  11. atomic一定线程安全吗
  12. Flink 生态:一个案例快速上手 PyFlink
  13. Anaconda常用指令
  14. 四、ARDUINO UNO开发板介绍
  15. 【渗透安全】利用腾讯云CDN节点隐藏连接Webshell的真实IP
  16. intent-filter属性介绍
  17. 基于SpringBoot+html超市进销存管理系统
  18. 国内外常见DNS汇总 (更新:201904)
  19. OpenJ_Bailian - 2692 假币问题
  20. 基于Springboot搭建个人博客 (学习笔记)

热门文章

  1. java点赞功能的实现,类似微信点赞,用户仅能点赞一次,基于redis进行操作
  2. 大话设计模式(更新ing...)
  3. 新华社 | 郭为:IT构架创新助力中国金融科技创新之路
  4. vue3使用setup代替created
  5. 0. Office Web Apps简介
  6. 巴贝奇——筹划信息时代
  7. JavaCV开发详解之3:通用拉流器实现,从流媒体服务器拉流rtsp/rtmp录制成视频文件
  8. rust领地柜用石镐拆吗_腐蚀Rust防炸地基教学 伪分离和双层防炸地基怎么造
  9. 斐波那契数列由数字1 1 2 3 5 8 13 21 34等等组成,其中每一个数字(从第三个起) 都是由前两个数字的和。
  10. 论文翻译:2021_Low-Delay Speech Enhancement Using Perceptually Motivated Target and Loss