1. 第零二章 • 安装

在开始学习 C 语言之前,我们需要安装一些必要的东西,搭建好编程的环境。好在过程并不复杂,我们只需要两个工具:代码编辑器和编译器。

1.1. 代码编辑器

代码编辑器其实就是一个更适合写代码的文本编辑器。它提供一些诸如关键字高亮,智能提示等功能帮助我们更快更好的编写代码。

  • Linux 上,我建议你用 gedit。不过如果你手头上有现成的代码编辑器也是可以的,但请不要使用 IDE。杀鸡焉用宰牛刀,本书构建的小小程序不会用到 IDE 所提供的便利,反而让你不清楚发生了什么。
  • Mac OS X 上,一个可以使用的编辑器是 TextWrangler,如果你有其他喜欢的,也是可以的,但请不要使用 Xcode,这种小项目使用 IDE 反而会让你搞不清楚细节。
  • Microsoft Windows 上,我建议你使用 Notepad++,如果你有其他喜欢的也是可以的啦。但是请不要使用 Visual Studio,因为它对 C 语言的支持并不好,使用它会遇到很多问题。

1.2. 编译器

编译器的作用是将我们写好的 C 语言的代码翻译成电脑能够直接运行的程序。不同的操作系统安装编译器的过程也是有差别的。

另外编译和运行 C 程序需要知道一些基本的命令行操作,本书不会教你怎么使用命令行。如果你从来没听说过命令行,你可以到网上搜一些教程看看。

  • Linux 上,你可以通过下载并安装开发包获得 C 语言的编译器。如果你的系统是 Ubuntu 或 Debian,你可以通过这行命令来安装:sudo apt-get install build-essential
  • Mac OS X 上,你需要在应用商店里下载并安装最新版的 Xcode。然后在命令行中运行 xcode-select --install 来安装 Command Line Tools
  • Microsoft Windows 上,你可以下载并安装 MinGW,具体的安装及配置方法可以到网上搜几个教程看一看,这里不再细说。

1.3. 测试安装好的 C 编译器

为了验证一下 C 编译器是否安装成功了,请在命令行中键入下面的语句并运行:

cc --version

如果你得到了一些关于编译器版本的信息,那就说明安装成功了!譬如,在我的 Mac 上,返回信息如下所示:

$ cc --version
Apple LLVM version 7.0.0 (clang-700.1.76)
Target: x86_64-apple-darwin15.0.0
Thread model: posix

1.4. Hello World

至此,环境搭建工作已经完成了。现在打开你的代码编辑器,将下方的代码输入到其中。新建一个文件夹,用于存放编写的代码。并把刚刚的代码保存到这个文件夹中,起名为 hello_world.c。这就是我们的第一个 C 程序啦!

#include <stdio.h>

int main(int argc, char** argv) {
  puts("Hello, world!");
  return 0;
}

接下来我会一行一行的解释这个程序。

第一行,我们包含了一个名为 stdio.h 的头文件进来。这条语句让我们可以使用标准输入输出库所提供的函数。

接下来,我们声明一个名为 main 的函数,该函数接受一个 int 类型的输入 argc,和一个 char** 类型的输入 argv,返回 int 类型的值。所有的 C 程序都必须包含 main 函数,它是程序执行的起点。

main 函数当中调用了一个名为 puts 的函数(这个函数就是由 stdio.h 提供给我们的哦),并传递了 "Hello, world!" 参数,这个函数会将传进去的 Hello, world! 输出到命令行中。puts 是 put string 的简写形式。函数中的第二条语句是 return 0;。它的作用是结束 main 函数并返回 0 值。0 代表程序正常退出,没有发生错误。

1.5. 编译

在运行这个程序之前,我们首先要将它编译成可执行的程序。打开命令行,然后跳转到 hello_world.c 被保存的目录。你可以通过运行以下命令来编译你的程序:

cc -std=c99 -Wall hello_world.c -o hello_world

这条语句编译了 hello_world.c 里面的代码,产生了一个新的可执行文件,叫做 hello_world-std=c99 是为了告诉编译器我们使用的是哪个标准的 C 语言。通过指定标准,只要我们写的程序符合标准的规范,我们的程序就可以在多个平台上编译并运行。

如果编译成功了,你会在 hello_world.c 同目录下看到一个名为 hello_world 的新文件。在命令行里面敲入 ./hello_world ,按一下回车键,就可以运行这个程序了。会在命令行打印出 Hello, world! 字样。

恭喜!你成功的编译并运行了你的第一个 C 程序!

1.6. 错误

如果你的 C 语言程序写的存在问题,可能会导致编译失败。这个错误可能是简单的语法错误,也可能是其他的一些难以理解的复杂错误。

编译失败后,编译器会向你提供一些有用的错误信息,如果你看不懂,可以到网上搜索一下。你要相信,在你之前肯定有很多人遇到了和你一样的错误。另外,程序中可能同时存在多个错误,记得要从第一条开始解决。

而有时,程序虽然编译成功了,但是运行的时候却崩溃掉了。这就需要对程序进行一些调试性的工作,设法找出问题所在。调试程序是进阶内容,超出了本书的讨论范围。

1.7. 文档

在本书提供的代码中,可能会遇到一些你从来没有见过的函数。如果想知道这个函数的作用,应该去查找 C 语言标准库的在线文档,这个文档中介绍了 C 语言中所有的标准库函数的作用及其用法。

1.8. 参考

参考是用来干嘛的?

在参考部分,我通常会给出这章中用到的代码作为总览。如果你自己写的程序遇到了错误,请不要把这里的代码简单的拷贝粘贴就完事了。一定要自己尝试着找出错误,并解决它。

hello_world.c

#include <stdio.h>

int main(int argc, char** argv) {
  puts("Hello, world!");
  return 0;
}

1.9. 彩蛋

彩蛋是用来干嘛的?

在彩蛋部分,我通常会提出一些有趣的,有挑战性的问题。请尽力尝试解决它们。你没有必要把它们全做出来,因为有些是很有难度的。

  • "Hello, world!" 改为其他的问候语。
  • 如果没有 main 函数,编译会得到什么错误?
  • 使用在线文档查看 puts 函数的用法。

results matching ""

    No results matching ""