[问题] 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