簡單的例子
我們用一個簡單的例子來開始學習 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() 開始執行。
底下,我們分別討論這個簡單例子的各個組成部分
問題與討論
- 為什麼說函數是 C 程式的執行單位呢?
- 為什麼利用 C 語言所寫的可執行程式至少要有函數定義區呢?如果簡單例子少掉前置處理的程式碼,編譯時會發生什麼問題嗎?
- 註解的用途是什麼?簡單例子中的註解透露了哪些訊息?
編譯與執行
我們在 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 鍵即可。
問題與討論
- C 為編譯式的語言,所以程式執行前都需要先編譯原始碼,另外有種直譯式的語言,那是怎麼樣的呢?
- 如果指定輸出檔名,但是少打參數 o ,編譯時會發生什麼樣的事情呢?
沒有留言:
張貼留言