作者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/cn.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