2016年3月6日 星期日

C語言-Hello World

C語言歷史

以下資料均出自維基百科

  • 1969 ~ 1973年:C語言最早由丹尼斯·里奇(Dennis Ritchie)為了在PDP-11電腦上運行的Unix系統所設計出來的程式語言。C源於BCPL語言,後者由馬丁·理察德(Martin Richards)於1967年左右設計實作。BCPL是一門”沒有資料類性”的程式語言:它僅能操作一種資料類型,即機器字(machine word)。

  • 1970年,肯·湯普遜為執行在PDP-7上的首個Unix系統設計了一個精簡版的BCPL,這個語言被稱為B語言,它也是沒有資料類性的。Unix最早運行在PDP-7上,是以組合語言寫成。在PDP-11出現後,丹尼斯·里奇與肯·湯普遜著手將Unix移植到PDP-11上,無類型的語言在PDP-11上愈發顯得合適。PDP-11提供了多種不同規格大小的基本物件:一位元組長的字符,兩位元組長的整型數以及四位元組長的浮點數。B語言無法處理這些不同規格大小的物件,也沒有提供單獨的操作符去操作它們。C語言最初嘗試通過向B語言中增加資料類型的想法來處理那些不同類型的資料。和大多數語言一樣,在C中,每個物件都有一個類型以及一個值;類型決定了可用於值的操作的含義,以及物件占用的儲存空間大小。

  • 1973年,Unix作業系統的核心正式用C語言改寫,這是C語言第一次應用在作業系統的核心編寫上。

  • 1975年C語言開始移植到其他機器上使用。史蒂芬·強生實作了一套「可移植編譯器」,這套編譯器修改起來相對容易,並且可以為不同的機器生成代碼。從那時起,C在大多數電腦上被使用,從最小的微型電腦到與CRAY-2超級電腦。C語言很規範,即使沒有一份正式的標準,你也可以寫出C程式,這些程式無須修改就可以執行在任何支援C語言和最小執行時環境的電腦上。C最初在小型機器上實作,並且繼承了一系列小語種程式語言的特點;與功能相比,C的設計者更傾向於簡單和優雅。此外,從一開始,C語言就是為系統級編程而設計,程式的執行效率至關重要,因此,C語言與真實機器能力的良好匹配也就不足為奇。例如,C語言為典型硬體所直接支援的物件:字符,整數(也許有多種大小),以及浮點數(同樣可能有多種大小)提供了相應的基本資料類型。

  • 1978年,丹尼斯·里奇和布萊恩·柯林漢合作出版了《C程式設計語言》的第一版。書中介紹的C語言標準也被C語言程式設計師稱作「K&R C」,第二版的書中也包含了一些ANSI C的標準。即使在後來ANSI C標準被提出的許多年後,K&R C仍然是許多編譯器的最低標準要求,許多老舊的編譯仍然運行K&R C的標準。

  • 1989年,C語言被美國國家標準協會(ANSI)標準化,編號為ANSI X3.159-1989。這個版本又稱為C89。標準化的一個目的是擴充功能K&R C,增加了一些新特性。

  • 1990年,國際標準化組織(ISO)成立 ISO/IEC JTC1/SC22/WG14 工作群組,來規定國際標準的C語言,通過對ANSI標準的少量修改,最終製定了 ISO 9899:1990,又稱為C90。隨後,ANSI亦接受國際標準C,並不再發展新的C標準。

  • 2000年,採用1999年ISO 9899:1999的發表,稱為C99

  • 2011年,ISO正式發行了新的C語言的新標準C11,之前被稱為C1X,官方名稱為ISO/IEC 9899:2011。
Hello World

學一個語言就是要先學它的髒話,所以我們要講說C語言的髒話。

讓我們來看Hell WorldHello World範例程式。

讓我們來好好解釋這些程式碼

註解是不會被執行的,註解主要目的為解釋程式碼,以便後人接手你的程式碼的時候不會看不懂,以提高程式碼的可維護性。

#include是巨集前置處理器(Macro Preprocessor),會告訴編譯器這支程式會使用到 stdio.h 標頭檔,標頭檔通常定義了一些常用的東西讓我們使用,例如 printf 就是在螢幕上顯示文字。

main為程式的主體,也是程式的進入點,為程式開始的地方。

return 是程式的回傳值,通常為 0。

為什麼回傳值為零請參考此連結

所有陳述(Statement)結尾都要加分號 ';'

printf 是將雙引號內的文字顯示到螢幕上

\n是跳脫字元,表示換行

參考
  1. C語言
  2. Hello! World!