我做OOP (C++/Java/PHP/Ruby)已经很长时间了,我真的很难想象像Linux或Apache这样的大型程序和库可以完全以命令式的方式编写。小型开源C项目是什么,我可以看看它是如何在C中完成的?
如果项目托管在GitHub上,则奖励积分。
发布于 2011-02-19 16:40:44
在C语言中,做事情的方式完全相同,但语言对它的支持却不那么明显。不是创建一个类来封装某种状态,而是创建一个结构。不使用隐式参数创建类成员,而是创建函数,显式传递一个struct*作为第一个参数,然后对结构进行操作。
为了确保封装不中断,您可以在头中声明结构,但只能在使用它的.c文件中定义它。虚拟函数需要更多的工作--但这只是在结构中放置函数指针的情况。在C中,这实际上比C++更方便,因为在C中,您可以手动填写vtable,对代码的哪一部分实现什么COM接口的部分(当然是C中的COM )有相当好的控制。
发布于 2011-02-19 17:02:12
您可能会发现ccan (模仿Perl的CPAN)的综合C存档网络很有趣。
目前它虽小,但其贡献是高质量的。许多贡献都是由linux内核开发人员做出的。
几乎所有的东西都属于“几千LOC”或更少的类别。
发布于 2011-02-19 17:10:47
如果您想要一个小示例,请尝试查看基本Linux实用程序的源代码。GNU二进制、制作或任何其他GNU实用程序都有可用的完整源代码,并且代码基数相对较小(有些代码比其他代码大)。最简单的事情通常是从您以前使用过并且已经熟悉的实用程序开始。
https://stackoverflow.com/questions/5051887
复制相似问题