所謂的標頭檔也就是另一個 .h 的檔案,以下為標頭檔的內容
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define SIZE 100 #define LEN 20 #define NAME_SIZE 15 enum state {EXIT, RUN, WRONG_NAME, WRONG_CODE, Y, N}; // 自訂的時間格式 struct my_tm { int year; int month; int day; int hour; int isam; int hourt; int min; int sec; }; // 記錄好友資料的結構 struct friendData { char name[NAME_SIZE]; int age; int sex; int relation; }; // 暫存在記憶體中的資料結構:鏈結串列 struct linkedListNode { struct friendData data; struct linkedListNode *nextPtr; }; typedef struct my_tm My_Time; typedef struct linkedListNode LinkedListNode; // 登入程式模組的函數原型 void login(void); My_Time myTimeS(time_t seconds); void sayHello(My_Time *tPtr, char *name); // 管理帳號模組的函數原型 int manage(int counter, char id[][LEN], char code[][LEN]); void printList(char id[][LEN], char code[][LEN]); void si(char id[][LEN], char code[][LEN]); int ssearch(char array[][LEN], int size, char *target); int di(int counter, char id[][LEN], char code[][LEN]); int so(char id[][LEN], char code[][LEN]); void ssort(char array[][LEN], char code[][LEN], int size); // 通訊錄模組的函數原型 void frienddata(char *name); int prompt(void); void addfriend(LinkedListNode **startPtr); void printList2(LinkedListNode *currentPtr); /* 《程式語言:教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:itm.h 功能:整合程式模組的標頭檔 作者:張凱慶 時間:西元2010年7月 */
我們把登入程式的部份移出函數 main() ,另寫一個 login() 處理登入事項, myTimeS() 轉換時間格式, sayHello() 印出現在時間,也向使用者說哈囉。
若是使用者以管理員帳號登入,在 login() 裡呼叫 manage() 進行管理帳號的工作,這裡相關的函數我們都已經看過。
若是使用者以註冊的帳號成功登入,也就是帳號與密碼相符, login() 便呼叫 frienddata() 進行通訊錄資料的處理,這裡另有 prompt() 專門印出提示訊息,然後回傳使用者的選項。
函數定義放在實作檔中,我們也需要另一個含有 main() 的執行檔,請繼續參考
問題與討論
- 有哪些東西放在標頭檔裡頭?
- 又有哪些東西放在實作檔當中?
1 則留言:
您好,請問為什麼標頭檔內只放入函數的原型宣告,而不將函數本身也放進去呢?
張貼留言