来自OOP背景,有哪些C程序/库可以帮助我获得"C方式"?

Oli*_*nde 2 c oop imperative-programming

我已经做了很长时间的OOP(C++/Java/PHP/Ruby),并且很难想象Linux或Apache这样的大型程序和库是如何完全以命令式的方式编写的.什么是我可以看到的小型开源C项目,以了解C中的事情是如何完成的?

如果项目托管在GitHub上,则奖励积分.

Chr*_*cke 5

事情在C中完全相同,但语言的支持较少.您可以创建一个结构,而不是创建一个类来封装某个状态.使用隐式此参数创建类成员,而不是创建类成员,您创建的函数显式传递struct*作为第一个参数,然后对结构进行操作.

为确保不破坏封装,您可以在头中声明结构,但只能在使用它的.c文件中定义它.虚函数需要更多的工作 - 但同样,它只是在结构中放置函数指针的情况.这在C中实际上比C++更方便,因为在C中你可以手动填写你的vtables,对代码的哪一部分实现COM接口的一部分(如果你当然是在C中的COM)有很好的控制水平.