作者pride829 (竹鼠)
看板C_and_CPP
標題[問題] C語言模組化的基礎問題
時間Wed May 17 23:46:59 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
DevC++
問題(Question):
heyGuys,我是一個C語言的菜鳥,目前我正照著資結書本上所教的嘗試建立一個自己的
LinkedList函式庫。我想盡量做到模組化,我對繼承、多型等有基礎的認識,但C好像沒
這些東西。因此我目前如果要新增一個function,我的作法是:
新增boo.h (裡面有ifndef,還有function的prototype)
新增boo.c (#include函式庫,實作)
然後在另一個統整的header file中 (目前的情況是linkedList.h) #include所有
functions
http://imgur.com/a/cU6Gg
然後在別的地方#include "linkedList.h"
只是這樣做真的很累,而且我也擔心這樣瞎子摸象的方式是否有缺陷/隱藏的危險等等,
請問是否有更好的方法在C語言中做到模組化?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.78.187
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1495036023.A.973.html
1F:→ james732: 把所有function放在header還挺奇怪的 05/18 00:56
2F:→ james732: header應該是描述最小程度的interface才是 05/18 00:57
3F:→ pride829: 那請問應該要怎麼做呢? 05/18 01:47
4F:推 chiwa: 其實你模組化過頭了,不需要每個function自己一個檔案 05/18 07:59
5F:→ chiwa: 如同1樓所說,header中描述的是你的API,需要讓外人知道的 05/18 08:01
6F:→ chiwa: 的部分,模組內部專用的變數或函數,你可以隱藏起來 05/18 08:02
7F:推 chuegou: 給你一個推 這部分可以看些如何用c語言實現oop的文章 05/18 09:07
8F:推 iLinux: 分享之前看到的opp in c實作,一樣也是寫list,https://gi 05/18 10:58
9F:→ iLinux: thub.com/QMonkey/Object-Oriented-C 05/18 10:58
11F:推 Killercat: C要有類似繼承的東西的話 參考C2Lib 05/18 11:19
12F:→ Killercat: 不過說真的C天生設計上就不太適合玩這個... 05/18 11:19
13F:→ pride829: 感謝各位的回覆 我研究看看! 05/18 14:06
14F:→ TobyH4cker: 我想說C語言...繼承...? 05/18 14:53
16F:→ DonaldTrunnp: 這個一個可行的 C 語言 list 實作包含繼承以及多型 05/18 18:00