編譯器

學習這些教程所需的基本工具是一臺計算機和一個能夠編譯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
目錄