[問題] C語言模組化的基礎問題

看板C_and_CPP作者 (竹鼠)時間8年前 (2017/05/17 23:47), 編輯推噓5(5011)
留言16則, 8人參與, 最新討論串1/2 (看更多)
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1495036023.A.973.html

05/18 00:56, , 1F
把所有function放在header還挺奇怪的
05/18 00:56, 1F

05/18 00:57, , 2F
header應該是描述最小程度的interface才是
05/18 00:57, 2F

05/18 01:47, , 3F
那請問應該要怎麼做呢?
05/18 01:47, 3F

05/18 07:59, , 4F
其實你模組化過頭了,不需要每個function自己一個檔案
05/18 07:59, 4F

05/18 08:01, , 5F
如同1樓所說,header中描述的是你的API,需要讓外人知道的
05/18 08:01, 5F

05/18 08:02, , 6F
的部分,模組內部專用的變數或函數,你可以隱藏起來
05/18 08:02, 6F

05/18 09:07, , 7F
給你一個推 這部分可以看些如何用c語言實現oop的文章
05/18 09:07, 7F

05/18 10:58, , 8F
分享之前看到的opp in c實作,一樣也是寫list,https://gi
05/18 10:58, 8F

05/18 10:58, , 9F
thub.com/QMonkey/Object-Oriented-C
05/18 10:58, 9F

05/18 10:59, , 10F

05/18 11:19, , 11F
C要有類似繼承的東西的話 參考C2Lib
05/18 11:19, 11F

05/18 11:19, , 12F
不過說真的C天生設計上就不太適合玩這個...
05/18 11:19, 12F

05/18 14:06, , 13F
感謝各位的回覆 我研究看看!
05/18 14:06, 13F

05/18 14:53, , 14F
我想說C語言...繼承...?
05/18 14:53, 14F

05/18 18:00, , 16F
這個一個可行的 C 語言 list 實作包含繼承以及多型
05/18 18:00, 16F
文章代碼(AID): #1P771tbp (C_and_CPP)
文章代碼(AID): #1P771tbp (C_and_CPP)