C 编程/学习之前你需要了解什么
本书介绍并教授 C 编程语言的基础知识,并涉及一些高级主题。本节概述了您充分利用本书所需的基本技能和工具。
本书适合初学者,所以即使您没有正规的计算机培训或编程经验也不要担心。假设您知道如何打开电脑、启动和停止应用程序,以及执行其他基本操作,例如安装软件。还假设您有一些使用终端窗口通过命令行界面与操作系统交互的经验。如果您不确定这意味着什么,请考虑查找您所选平台的教程,这些教程可以让您熟悉计算机命令行。至少,您应该了解用于导航到不同目录和执行简单文件管理操作的基本命令。本书将详细说明您需要从命令行运行的其他任何命令,以使您的 C 代码在您的机器上运行。
没有人仅仅通过阅读乐谱就能成为音乐家。音乐家必须不断地演奏和练习他们的乐器才能变得出色。同样,成为一名程序员的唯一方法是编写和执行大量代码。为此,您将需要两件不同的软件:编译器和文本编辑器。两者都可以免费获得。
编译器是一个复杂的软件,用于将您使用文本编辑器编写的 C 源代码转换为可以在您的计算机上执行的机器代码[1]。以下是流行的 C 编译器列表。请注意,下面列出的一些编译器是集成开发环境 (IDE)的一部分。但是,如果您是编程新手,最好从命令行而不是通过 IDE 安装和运行编译器。本书在示例中使用 GNU C 编译器 (GCC),因此我们建议您安装此编译器以用于本书。本章的下一部分将说明如何将 GCC 软件下载并安装到您的机器上。
流行的 C 编译器/IDE 包括
名称 | 网站 | 平台 | 许可证 | 详情 |
---|---|---|---|---|
Microsoft Visual Studio 社区版 | Visual Studio | Windows | 专有,免费 | 功能强大且对学生友好的行业标准编译器版本。 |
Xcode | Xcode | macOS,OSX | 专有,免费 | 可在 Mac App Store 上免费获得。 |
Tiny C 编译器 (TCC) | tinycc | GNU/Linux,Windows | LGPL | 小型、快速且简单的编译器。 |
Clang | clang | GNU/Linux,Windows,Unix,OS X | 伊利诺伊大学/NCSA 许可证 | 一个免费的、许可证放宽的前端,使用 LLVM 后端。 |
GNU C 编译器 | gcc | GNU/Linux,MinGW 或 mingw-w64 (Windows),Unix,OS X。 | GPL | 事实上的标准。随大多数类 Unix 系统一起提供。 |
除了编译器之外,唯一其他软件要求是用于编写和保存 C 代码的文本编辑器。请注意,文本编辑器不同于文字处理器,文字处理器是一种具有许多功能以创建视觉上吸引人的文档的软件。与文字处理器不同,文本编辑器主要用于创建纯文本文件。在 Windows 上,可以使用 Notepad 文本编辑器,但它不提供任何高级功能,例如语法高亮和代码补全。有数百种文本编辑器(请参阅文本编辑器列表)。其中最流行的是适用于 Windows 的Notepad++,以及Sublime Text、gedit、Vim和Emacs,它们也可以在其他操作系统上使用(“跨平台”)。这些文本编辑器带有语法高亮和行号,这使得代码一目了然,更容易发现语法错误。许多文本编辑器具有提高编码速度的功能,例如按键宏和代码片段,您可以在编程技能提高时利用这些功能。
您可能还在考虑使用集成开发环境 (IDE) 来帮助您编写代码。IDE 是一个集成工具和功能的套件,在一个方便的包中,通常带有图形用户界面。这些程序包括文本编辑器和文件浏览器,有时还会捆绑一个易于访问的编译器。它们通常还包括一个调试器,这是一个工具,可以让你执行诸如手动逐行地逐步执行你开发的程序,或者更改数据以帮助查找和纠正编程错误。
但是,许多 IDE 不提供编译器的命令行界面,或者只提供执行程序的图形按钮或菜单。因此,对于新程序员来说,IDE 不是理想的选择。相反,一个简单的文本编辑器就足够了,并且能够在命令行上发出简单的命令,这将帮助您获得对核心开发工具的实际熟悉和理解。当然,如果您熟悉 IDE,IDE 仍然对您有用。但作为一个一般指南:除非您知道 IDE 为您做了什么,否则请不要使用 IDE!
其他流行的编译器/IDE 包括
名称 | 网站 | 平台 | 许可证 | 详情 |
---|---|---|---|---|
Eclipse CDT | Eclipse | Windows,Mac OS X,GNU/Linux | 自由/自由和开源 | Eclipse 是一个流行的开源 IDE,用于 C/C++ 开发。 |
Netbeans | Netbeans | 跨平台 | CDDL 和 GPL 2.0 | 一个与 Eclipse 相当的成熟 IDE。 |
GNOME Builder | Builder | GNU/Linux | GPL | 一个功能丰富但简单的 IDE,适用于 GNOME 桌面环境。 |
Anjuta | Anjuta | GNU/Linux | GPL | 一个可扩展的 GTK+3 IDE,适用于 GNOME 桌面环境。 |
Geany | geany | 跨平台 | GPL | 基于 Scintilla 的轻量级跨平台 GTK+ 笔记本,具有基本 IDE 功能。 |
KDevelop | KDevelop | 跨平台 | GPL | 一个跨平台 IDE,适用于 KDE 项目。 |
Little C 编译器 (LCC) | lcc | Windows | 源代码可用,但不是开源或自由的 | 小型编译器。 |
Pelles C | Pelles C | Windows,Pocket PC | 专有,免费 | 适用于 Windows 的完整 C 开发套件。 |
Dev-C++ | Dev C++ | Windows | GPL | 以前流行的 Bloodshed Dev-C++ 的更新版本。 |
CodeLite | CodeLite | 跨平台 | GPL 2 | 免费 IDE,用于 C/C++ 开发。 |
Code::Blocks | Code::Blocks | 跨平台 | GPL 3.0 | 旨在满足用户最苛刻的需求。非常可扩展且完全可配置。 |
在 GNU/Linux 上,GCC 几乎总是默认包含在内。
在Microsoft Windows上,Dev-C++ 对于初学者来说是推荐使用的,因为它易于使用、免费且易于安装。虽然最初的开发人员(Bloodshed)自 2005 年以来就没有更新过它,但 2011 年出现了一个由独立程序员制作的新版本,并且正在积极开发中。[2] 对于那些只在 Windows 环境中工作的人来说,另一个选择是专有的 Microsoft Visual Studio Community,它免费且拥有优秀的调试器。
在Mac OS X上,Xcode IDE 提供了编译各种源文件所需的编译器。较新的版本不包括命令行工具。需要通过 Xcode->Preferences->Downloads 下载它们。
脚注
[edit | edit source]- ↑ 实际上,GCC(GNU C 编译器)的cc(C 编译器)将输入的 .c 文件转换为目标 CPU 的汇编,输出写入 .s 文件。然后as(汇编器)从 .s 文件生成机器码文件。预处理由另一个子程序cpp(C 预处理器)完成,不要与c++(另一种编程语言的编译器)混淆。
- ↑ http://orwelldevcpp.blogspot.com/