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

作者: pride829 (竹鼠)   2017-05-17 23:46:59
開發平台(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語言中做到模組化?
作者: james732 (好人超)   2017-05-18 00:56:00
把所有function放在header還挺奇怪的header應該是描述最小程度的interface才是
作者: pride829 (竹鼠)   2017-05-18 01:47:00
那請問應該要怎麼做呢?
作者: chiwa (我是青蛙,不是王子^_^)   2017-05-18 07:59:00
其實你模組化過頭了,不需要每個function自己一個檔案如同1樓所說,header中描述的是你的API,需要讓外人知道的的部分,模組內部專用的變數或函數,你可以隱藏起來
作者: chuegou (chuegou)   2017-05-18 09:07:00
給你一個推 這部分可以看些如何用c語言實現oop的文章
作者: iLinux (艾林尼克斯)   2017-05-18 10:58:00
分享之前看到的opp in c實作,一樣也是寫list,https://github.com/QMonkey/Object-Oriented-Chttps://github.com/QMonkey/Object-Oriented-C
作者: Killercat (殺人貓™)   2017-05-18 11:19:00
C要有類似繼承的東西的話 參考C2Lib不過說真的C天生設計上就不太適合玩這個...
作者: pride829 (竹鼠)   2017-05-18 14:06:00
感謝各位的回覆 我研究看看!
作者: TobyH4cker (Toby (我要當好人))   2017-05-18 14:53:00
我想說C語言...繼承...?
作者: DonaldTrunnp (The US President)   2017-05-18 17:59:00
https://github.com/kevin-dong-nai-jia/OpenGC3這個一個可行的 C 語言 list 實作包含繼承以及多型

Links booklink

Contact Us: admin [ a t ] ucptt.com