#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月 */
我們把注意力放在第 1 行,也就以下這張圖的「前置處理區」
C 程式在編譯前可以先進行前置處理 (preprocessing) ,所謂的前置處理包括引入標頭檔 (header file) 、定義常數 (constant) 或巨集 (macro) 、條件式編譯等。
若要使用 C 語言標準函數庫中的功能,就需要先引入相關的標頭檔。此例中,由於我們用到函數 printf() ,這是 C 語言用來將格式化字串傳送到標準輸出裝置的函數,而這個函數原型宣告在標頭檔 stdio.h 中,因此我們要用到這個函數時,就得在前置處理時先引入。
井字號加上 include
#include <stdio.h>
這是前置處理器的指令,作為引入標頭檔之用,注意,引入標準函數庫是用角括號 < > 將標頭檔圍起來,若是引入自己寫的標頭檔,就要用雙引號 " " ,例如
#include "my_header.h"
這便會將自己寫的 my_header.h 引入原始碼當中,好讓編譯器在編譯前先將 my_header.h 中定義的東東囊括進來。
標頭檔通常會放往後開發程式所共同需要的東東,例如常數、巨集、結構、函數原型的定義放在標頭檔中,由於這些其他程式也可能會用到,因此放在某一標頭檔中,然後就可以讓其他程式以相同方式利用囉!這是重新利用已經完成程式的方法,不需要重新再開發,也不需要重複相同的程式碼。
標準函數庫就是以這樣的概念建置的,許多經常用到的功能都已經先放在標準函數庫的標頭檔之中,因此需要用到這些功能時,只需要引入標準函數庫的標檔就可以使用囉!
問題與討論
- 前置處理可以進行哪些工作呢?
- 有哪些常用功能可以在標準函數庫裡找到呢?
- 標頭檔的功能是什麼?
- 為什麼要避免重複的程式碼出現在程式中呢?
沒有留言:
張貼留言