一、C 語言的沿革
- 1960年,ALGOL 60 推出。
- 1963年,英國的劍橋大學和倫敦大學以 ALGOL 60 為基礎,共同推出了 CPL (Combined Programming Language)語言。
- 1967年,英國劍橋大學的 Martin Richards 對 CPL 語言做了簡化,推出了 BCPL (Basic Combined Programming Language)語言。
- 1970年,美國貝爾實驗室的 Ken Thompson 以 BCPL 語言為基礎簡化了 BCPL 語言,設計出 B 語言(取 BCPL 的第一個字母),並利用 B 語言寫出早期的UNIX作業系統。
- 1972年,貝爾實驗室的 Dennis Ritchie 以 B 語言為基礎,設計出 C 語言(取 BCPL 的第二個字母)。之後 Ken Thompson 和 Dennis Ritchie 兩人又合力利用 C 語言寫出了新版的UNIX作業系統。
- 1983年,貝爾實驗室的 Bjarne Sroustrup 於 C 語言中加入了 Simula 語言的 class (類別)的概念,以及物件導向的概念,產生出 C++ 語言。
下面是 C 語言發展的主要過程:
1960 年 ALGOL 60 → 1963年 CPL → 1967年 BCPL → 1970年 B 語言
→ 1972年 C 語言 → 1983年 C++ 語言
二、C 語言的發展
C 語言的歷史,可說和 UNIX 的發展密不可分,故現今 UNIX 系列的作業系統(包括 Linux、FreeBSD)的大部分程式皆是由 C 語言設計出來,而 Windows 作業系統的主要程式,包括 Windows 本身、Office 軟體、各大應用軟體、遊戲軟體等,也是以 C/C++ 語言設計,只有一些不注重執行效率的簡單軟體才是使用 VB、FoxPro 等程式語言設計。
C 的語法簡潔、執行效率高,又有跨平台的特性,因此成為專業程式設計師的最愛,也是資訊科系必備的語言基礎。也由於會用 C/C++ 的程式設計師很多,因此許多新興的程式語言也都以 C/C++ 的語法為基礎,例如:網頁特效及手機遊戲的 Java、網頁語法的 JavaScript、動態網頁技術的 PHP 和 Flash 動畫的控制語法ActionScript,在語法上和 C/C++ 都很相似,因此只要學會了 C 語言,要學會上述其他語言都很快就可以上手。
三.C歷史
C 前身為 B 語言, 在 Bell Lab (貝爾實驗室) 由當時的研究員 Dennis Ritchie 發展出來,目的是為了開發UNIX 作業系統, 替代部份組合語言的工作, 並可在不同的環境上開發系統與執行.
C的基本格式
/* ====================
一個什麼也不做的程式.
==================== */
int main() /*主程式, 由此處開始執行*/
{
/*程式碼位置*/
return 0; /* 主程式結束*/
}
◎原始碼<不含註解>◎
int main()
{
return 0;
}
C語言的格式中預設程式執行時,從主程式 main()開始執行,int main()中的 int代表程式執行結束後,會傳回一個整數(integer)值,這一個部份在函數時會再詳細解說。/* */ 符號中的所有字元是代表註解,不會被程式執行。上面這個程式在C語言中是一個完整可執行的程式,但執行時卻不會有任何動作,這是C語言的基本撰寫格式,以主程式main()開始,整個主程式包含在由一對大括號 { }所定義的區塊中。int main(),指程式執行結束時會傳回一個整數值,在程式結束時以return指令傳回。大部份的C 語言編譯器允許程式結束時可以不傳回值,但有些編譯器則一定要傳回值。
Hello! World!
學 習程式語言的第一件事,就是得先學會如何在控制台(Console)上顯示文字,也就是純文字模式的顯示,初學者往往必須先從控制台開始學習程式的撰寫 與執行程式,這很枯燥,不若一些視窗化的開發環境撰寫起來有成就感,但主控台程式設計可以讓程式設計人員專心於程式邏輯的開發,因而對初學者來說也是學習 語言的一個好方式。
來看看如何使用C++來撰寫一個簡單的程式,將您指定的文字輸出於主控台上,C++的副檔名為*.cpp,您可以使用任一種純文字編輯程式來編輯C++程 式 :
#include <iostream>
using namespace std;
int main() {
cout << "Hello! World!\n";
cout << "哈囉! C++!\n";
return 0;
}
首先看到程式的這兩行:
#include <iostream>
using namespace std;
#include是巨集(Macro)前置處理器指令(Preprocessor directive)(詳情之後會介紹),它告訴編譯器(Compiler)這個程式必須使用到 iostream 這個表頭檔(Header file)中的一些函式(Function)與類別(Class)定義,以正確的編譯程式中所使用到的程式庫函式。簡單的說您所要使用到的主控台輸入輸出 功能就定義在這個檔案中;這是新式的程式的表頭檔寫法,using指令表示使用名稱空間(Namespace)std下的名稱,這之後還會詳細說明,現在 請先記得,要在主控台進行輸入輸出,這兩行一定要寫。
C++過去的舊式表頭檔寫法在現在也是可以使用的,您也可以使用下面這行來取代上面兩行: #include <iostream.h>
這種表頭檔的include寫法,在許多舊程式上還很常見。C++標準表頭檔沒有副檔名,因為副檔名的命名規則隨各編譯器而有所不同。
如果您學過C語言,在C語言中常用的一些函式庫,在C++中也可以使用,只要將*.h去掉,並於前頭上c即可,例如math.h改為cmath, string.h改為cstring,當然這種C/C++函式庫混用的情況是不被建議的。
接下來看主函式(Main function)的部份,在C++程式中,程式的進入點(Entry point)是main()這個函式:
int main() {
….
return 0;
}
其中int表示這個程式執行完畢之後會傳回一個整數(Integer),括號的位置可設置參數列,之後會學到在程式執行的時候,可同時將程式的相關引數傳 遞給程式,目前我們並不需要傳遞引數,所以括號中不設定任何參數,表示程式不接收任何引數。
Leave a Reply