Hello! World!


學習程式語言的第一件事,就是先學會如何在主控台(Console)上顯示文字,也就是純文字模式的顯示,這很枯燥,不若一些視窗化的開發環境寫起來有成就感,但主控台可以讓程式設計人員專心於程式邏輯的開發,因而對初學者來說,是紮實學習語言的一個方式。

來看看如何使用 C 來撰寫一個簡單的程式,將指定的文字輸出於主控台上,C 的副檔名為 *.c,你可以使用任一種純文字編輯程式來編輯 C 程式 :

#include <stdio.h>

int main(void) {
    printf("Hello! World!\n");
    printf("哈囉!C 語言!\n");

    return 0;
}

首先看到程式的第一行:

#include <stdio.h>

#include 是巨集(Macro)前置處理器指令(Preprocessor directive),它告訴編譯器(Compiler)這個程式會用到 stdio.h 這個標頭檔(Header file)定義的函式(Function),以便正確地編譯程式中使用到的程式庫函式,被含括的標頭檔內容,會被插入 #include 的位置,然後再進行編譯。

簡單地說,主控台的輸入輸出功能就定義在這個檔案中,這之後還會詳細說明,現在請先記得,要在主控台進行輸入輸出,這一行一定要寫。

接下來看主函式(Main function)的部份,在 C 程式中,程式的進入點(Entry point)是 main() 這個函式:

int main() { 
    .... 

    return 0; 
}

其中 int 表示這個程式執行完畢後會傳回整數(Integer),括號的位置可設置參數列,之後會學到,在執行程式時,可同時將相關引數傳遞給程式。目前並不需要傳遞引數,因此括號中可設定 void,表示程式不接收任何引數。

程式的最後一行是 return 0,也就是程式結束後傳回 0,在不成文的規定中,程式結束會傳回一個數值,通常 0 表示程式正常結束,你可以讓其他程式或 shell 來取得程式的傳回值,以進行進一步的處理。

不過,在 C99/C11 之後,如果沒有在最後撰寫 return 0,預設就是傳回 0 了,你可以省去這個動作。

再來看 main() 中的兩行陳述:

printf("Hello! World!\n"); 
printf("哈囉!C 語言!\n");

在 C 程式中,每一個陳述(Statement)結束都必須使用分號(;),printf()是 C 提供的標準輸出函式,如果要輸出文字至螢幕上,可以使用雙引號包括文字並寫至 printf 的括號之間,簡單地說,若要將文字顯示於螢幕上,可以使用這樣的寫法:

printf("文字");

若在欲顯示文字的後面加上 '\n',表示要進行換行,否則的話,下一段文字會直接顯示於同一行文字之後。

要輸出的字串是使用雙引號 "" 來包括,如果要顯示雙引號,必須先告訴編譯這件事,也就是使用跳脫字元 \",例如:

printf("我是\"良葛格\"!");

這段文字會文字模式下顯示:我是"良葛格”。

接下來可以使用編譯器來編譯程式了,我是使用 MinGW-w64,GNU 編譯器版本是 8.1.0,執行之後,就可以看到主控台上出現這兩段文字:

$ gcc hello.c
$ ./a.out
Hello! World!
哈囉!C 語言!