天天看點

經典中的品味:第一章 C++的Hello,World!1.1 程式1.2 經典品味 ”Hello,world!“1.3你看不到的程式代碼之外:編譯 連結1.4 第一章 小結 及 思考

何為程式?簡單的說,就是為了使計算機能夠做事,你需要在繁瑣的細節中告訴它怎麼做。對于怎麼做的描述就是程式。程式設計是書寫和測試怎麼做的過程。維基百科上說,一個程式就像一個用漢語(程式設計語言)寫下的紅燒肉菜單(程式),用于指導懂漢語和烹饪手法的人(體系結構)來做這個菜。做一個形象的比喻,在生活中某種意義上,你都見到程式。石器時代,“我們用石頭打它”。就是個程式。

經典中的品味:第一章 C++的Hello,World!1.1 程式1.2 經典品味 ”Hello,world!“1.3你看不到的程式代碼之外:編譯 連結1.4 第一章 小結 及 思考

圖1.1 ”我們用石頭打它“  摘自 《數學之美》

其中,他用怪叫和動作告訴小夥伴這行為,叫做程式。隻有懂這個的夥伴才會一起拿起石頭砸。但相對計算機來說,計算機很“笨”,為了像計算機解釋這些,我們需要一種特定文法精确定義的語言。那就是程式設計語言,例如c++。

這是經典的例子,在螢幕中輸出”hello,world!“:

<a href="http://www.bysocket.com/?p=857#">?</a>

1

2

3

4

5

6

7

8

<code>#include &lt;iostream&gt;</code>

<code>using namespace std;</code>

<code>int</code> <code>main()</code>

<code>{</code>

<code>    </code><code>cout &lt;&lt;</code><code>"hello,world!\n"</code><code>;</code>

<code>    </code><code>return</code> <code>0</code><code>;</code>

<code>}</code>

運作的結果:列印hello,world!然後,下面新的一行.一個光标位于下一行的開始。

經典中的品味:第一章 C++的Hello,World!1.1 程式1.2 經典品味 ”Hello,world!“1.3你看不到的程式代碼之外:編譯 連結1.4 第一章 小結 及 思考

圖1.2 hello,world!輸出

程式中,主要工作的代碼:

<code>cout &lt;&lt;</code><code>"hello,world!\n"</code><code>;</code>

cout是一個标準輸出流,使用 &lt;&lt; 操作符可以将字元顯示到螢幕上。很自然,這是你第一次看到縮寫,cout:character outputstream的縮寫。剛開始會不适應,但是當你遇見縮寫多了的話,你會愛上他。

第一行:

他是個指令,這個具體是讓我們使用标準的c++流i/o功能。這裡,我們使用了cout和它的操作符&lt;&lt;.此外,使用#include包含的檔案通常字尾有.h,稱為頭檔案或頭。我們基本上是使用c++自己提供的各種功能源代碼。比如上面,我們需要什麼功能就引入啥頭檔案。

程式入口:

大家都知道一個程式要告訴計算機哪裡開始執行,c++每個程式必須有個main函數。一個函數基本是個指令集也稱指令序列,計算機會按着原定的順序執行。一個函數通常包括:

傳回類型:這裡是int,用來指定傳回結果類型。

名字:這裡是main

參數清單:這裡為空,如果有參數,會寫在()

函數體:{}裡面寫了函數要執行的語句。

程式的結束:

<code>return</code> <code>0</code><code>;</code>

要知道,main函數是系統調用的,自然我們需要告訴系統何時結束。傳回值可以用于檢查程式是否成功,特别在有些系統(unix/linux)。有main()傳回的一個 0 表示程式成功終止。

”hello,world!“程式的運作,通過c++程式設計語言。在它從人可讀可改的格式轉換為計算機可以了解的東西,這個過程我們需要一個成為“編譯器”的程式。

何為編譯器?

維基百科上說,編譯器(compiler),是一種電腦程式,它會将用某種程式設計語言寫成的源代碼(原始語言),轉換成另一種程式設計語言(目智語言)。它主要的目的是将便于人編寫,閱讀,維護的進階計算機語言所寫作的源代碼程式,翻譯為計算機能解讀、運作的低階機器語言的程式,也就是可執行檔案。做個比喻,一個聲控電燈,我們如果想說“把燈打開”,燈顯然是不知道這句話的意思。它的世界是:”有聲音我就亮“。進而,你的仆人就大叫一聲,燈亮了。這個仆人的工作就是編譯器的程式原理。

一個現代編譯器的主要工作流程如下: 源代碼(source code)→ 預處理器(preprocessor)→ 編譯器(compiler)→ 彙程式設計式(assembler)→ 目标代碼(object code)→ 連結器(linker)→ 可執行檔案(executables)。是以,可讀可寫的稱為源代碼,計算機可執行的是目标代碼。在未來的日子裡,你将接觸到這個朋友,他非常嚴格。但請你記住,編譯器是你程式設計中最好的朋友。下面我們展現程式的流程:

經典中的品味:第一章 C++的Hello,World!1.1 程式1.2 經典品味 ”Hello,world!“1.3你看不到的程式代碼之外:編譯 連結1.4 第一章 小結 及 思考

圖1.3 hello,world!的一生

hello,world! 其實不重要,重要我們熟悉基本思想和工具。曾經看透菜單,成為了大廚。曾經看破曆史的,當了作家或者其他。勤奮,專注,锲而不舍。c++并不難。

繼續閱讀