我正在研究任務列表程序,在我上課之前刷上C語言。我有兩個結構,任務和任務列表。爲任務列表程序設計函數的參數和返回值
這裏是任務結構:
typedef struct task
{
char name[100];
bool completed; /* bool is described as an enum in an included header file */
date due_date; /* date is a described as a struct in an included header file */
} task;
我有以下工作職能:
- 列表項
- init_tasklist():初始化任務列表變量
- add_task():添加任務列表
- delete_task():從任務列表中刪除給定的任務
- print_tasklist():打印出來的任務列表類似於一個複選框,名稱,到期日爲每個項目
- delete_tasklist()一個正常的待辦事項列表:刪除給定的任務列表
- print_task():打印出來的細節一個給定的任務
我的問題與哪些變量作爲函數的參數以及返回什麼有關。
我想將這個任務列表用於cli界面,然後將其更改爲GUI,因此我希望將其作爲一個簡單的開關。首先,我有add_task()malloc() - 一個新任務並返回一個指向該任務的指針,然後delete_tasklist()遞歸地通過並釋放() - 刪除任務列表中的內存。我從OOP和Java的經驗中獲得了這種方法。
在C中設計這個最好的方法是什麼?
add_task()函數是否需要將任務結構添加到列表中,或者只是應該在任務中並使add_task()函數初始化它的變量?
我應該編寫一個get_task()函數,該函數返回指向具有給定名稱的任務的指針,如print_task()和delete_task(),它將採用任務指針,或者應該採用char指針並查找任務本身?
有關如何設計這些函數的I/O的任何指導將非常有幫助。
不定義你自己的'bool'。在'stdbool.h'頭文件中有C99。 – 2010-09-11 06:46:12
@Jens Gustedt:如果你不包含'stdbool.h',定義你自己的'bool'是完全合法的 - 也許代碼也是C89的代碼? – caf 2010-09-11 14:07:59
我不打算適合任何標準。我正在使用gcc 4.4.3。 – mouche 2010-09-13 03:59:17