编译器

学习这些教程所需的基本工具是一台计算机和一个能够编译C++代码并构建程序以在其上运行的编译器工具链。

C++是一门多年来不断发展的语言,这些教程解释了许多最近添加到该语言的新特性。因此,为了能正确地学习这些教程,需要一个较新的编译器。它应(即便只是部分)支持2011年标准引入的特性。

许多编译器供应商对新特性的支持程度不同。请参阅本页底部,那里列出了一些已知支持所需特性的编译器。其中一些是免费的!

如果因为某些原因,您需要使用一些较旧的编译器,您可以在这里访问这些教程的旧版本(已不再更新)。

什么是编译器?

计算机只理解一种语言,这种语言由一和零组成的指令集构成。这种计算机语言被恰如其分地称为机器语言

给计算机的一条指令可能看起来是这样的:

0000010011110

一个特定计算机的机器语言程序,如果它允许用户输入两个数字,将这两个数字相加,并显示总和,可能包含以下这些机器码指令:

0000010011110
0000111110100
0001010011110
0001111010100
0010010111111
0010100000000

可以想象,直接用机器语言(仅使用一和零)来为计算机编程是非常繁琐且容易出错的。为了让编程变得更容易,高级语言应运而生。高级程序也使得程序员更容易检查和理解彼此的程序。

这是一段用C++编写的、完成完全相同目的的代码:

1
2
3
4
5
6
7
int a, b, sum;
     
cin >> a;
cin >> b;
             
sum = a + b;
cout << sum << endl;

即使您不能完全理解上面的代码,您也应该能体会到用C++语言编程比用机器语言编程要容易得多。

因为计算机只能理解机器语言,而人类希望用高级语言编写程序,所以高级语言必须在某个时刻被重写(翻译)成机器语言。这个过程由集成在各种编程应用程序中的特殊程序完成,这些程序被称为编译器、解释器或汇编器。

C++被设计成一种编译型语言,这意味着它通常被翻译成可以被系统直接理解的机器语言,从而使生成的程序非常高效。为此,需要一套工具,称为开发工具链,其核心是编译器及其链接器。

控制台程序

控制台程序是使用文本与用户和环境进行通信的程序,例如在屏幕上打印文本或从键盘读取输入。

控制台程序易于交互,并且通常具有可预测的行为,在所有平台上都完全相同。它们也易于实现,因此非常适合用来学习编程语言的基础知识:这些教程中的示例都是控制台程序。

编译控制台程序的方式取决于您使用的具体工具。

对于初学者来说,编译C++程序最简单的方法是使用集成开发环境(IDE)。IDE通常集成了多种开发工具,包括文本编辑器和直接从中编译程序的工具。

这里有关于如何使用不同的免费集成开发环境(IDE)来编译和运行控制台程序的说明:

IDE平台控制台程序
Code::blocksWindows/Linux/MacOS使用 Code::blocks 编译控制台程序
Visual Studio ExpressWindows使用 VS Express 2013 编译控制台程序
Dev-C++Windows使用 Dev-C++ 编译控制台程序

如果您碰巧有具备开发功能的 Linux 或 Mac 环境,您应该能够直接从终端编译任何示例,只需在编译器命令中包含 C++11 标志即可:

编译器平台命令
GCCLinux 等...g++ -std=c++0x example.cpp -o example_program
ClangOS X 等...clang++ -std=c++11 -stdlib=libc++ example.cpp -o example_program
Index
目录