C 語言初學教材 - 第一章 來寫程式吧 目錄



簡單的例子



我們用一個簡單的例子來開始學習 C 語言,程式碼如下
#include <stdio.h>

int main(void)
{
    int month, day, hour, min;
    char *name;
    
    month = 7;
    day = 27;
    hour = 9;
    min = 45;
    name = "kaiching";
    
    printf("\n\n今天是 %d 月 %d 日\n", month, day);
    printf("現在是上午 %d:%d\n", hour, min);
    printf("哈囉, %s!\n\n", name);
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:csimple.c
    功能:簡單顯示訊息的例子
    作者:張凱慶
    時間:西元2010年7月 */


程式 (program) 的功能很簡單,顯示日期、時間,然後向某人說哈囉。整個程式可以分成底下幾個部份



分成三大區,前置處理 (preprocessing) 區、函數 (function) 定義區及註解 (comment) 區。利用 C 語言所寫的可執行程式至少要有函數定義區,並且至少須定義函數 main() ,因為 main 為 C 語言函數中預設的保留字,函數為 C 程式執行的單位, main() 函數則為 C 程式執行的起點,這是說,所有可執行的 C 程式編譯時都會尋找名為 main 的函數,然後呼叫函數 main() 開始執行。


底下,我們分別討論這個簡單例子的各個組成部分




問題與討論
  1. 為什麼說函數是 C 程式的執行單位呢?
  2. 為什麼利用 C 語言所寫的可執行程式至少要有函數定義區呢?如果簡單例子少掉前置處理的程式碼,編譯時會發生什麼問題嗎?
  3. 註解的用途是什麼?簡單例子中的註解透露了哪些訊息?




編譯與執行



我們在 Mac 的終端機利用 GCC 編譯 C 程式的原始碼,大體上其他的 UNIX-Like 作業系統,如 Linux 或 BSD 的使用方式都類似,只需要打入 gcc 這個指令,然後空一格,再接上原始碼的檔案名稱,如以上我們簡單例子的檔名為 csimple.c



按下 return 鍵或 Enter 鍵,終端機無聲無息的出現下一個提示符號,就表示編譯成功。用 GCC 編譯後預設的執行檔為 a.out ,在 MS-Windows 系統可能是 a.exe ,這是後要在命令列執行,一般需要鍵入 ./a.out ,就是「英文句點」加「斜線」加「執行檔名」



MS-Windows 系統中可能打入 a ,然後按下 Enter 鍵即可。


利用 GCC 也可以指定輸出檔名,例如我們打算將 csimple.c 編譯成 csimple



在 gcc csimpile.c 的指令後接上參數 -o ,後面再接空格,然後才是輸出檔名,同樣的,如果終端機無聲無息的出現下一個提示符號,就表示編譯成功。而在 MS-Windos 系統中,輸出檔名可能需要加上 .exe 的副檔名。


執行 csimple ,一樣「英文句點」加「斜線」加「執行檔名」



MS-Windows 系統中可能只需要打入執行檔名,然後按下 Enter 鍵即可。


問題與討論
  1. C 為編譯式的語言,所以程式執行前都需要先編譯原始碼,另外有種直譯式的語言,那是怎麼樣的呢?
  2. 如果指定輸出檔名,但是少打參數 o ,編譯時會發生什麼樣的事情呢?




沒有留言: