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

来自OOP背景,有哪些C程序/库可以帮助我获得;C路;?,c,oop,imperative-programming,C,Oop,Imperative Programming,我已经做OOP(C++/Java/PHP/Ruby)很长时间了,真的很难想象像Linux或Apache这样的大型程序和库可以完全以命令式风格编写。什么样的小型开源C项目可以让我了解C是如何完成的 如果项目托管在GitHub上,则会获得额外的积分。在C中,事情的完成方式完全相同,但该语言的公开支持较少。创建一个结构,而不是创建一个类来封装某些状态。使用隐式this参数不创建类成员,而是创建显式传递struct*作为第一个参数的函数,然后对该结构进行操作 为了确保封装不被破坏,您可以在头中声明结构,

我已经做OOP(C++/Java/PHP/Ruby)很长时间了,真的很难想象像Linux或Apache这样的大型程序和库可以完全以命令式风格编写。什么样的小型开源C项目可以让我了解C是如何完成的


如果项目托管在GitHub上,则会获得额外的积分。

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

为了确保封装不被破坏,您可以在头中声明结构,但只能在使用它的.c文件中定义它。虚拟函数需要更多的工作,但同样,它只是在结构中放置函数指针的一种情况。在C中,这比C++更方便,因为在C中,您可以手动填充VTABLE,得到相当好的控制级别,代码的哪个部分实现COM接口的一部分(如果您在C中当然是COM)。 目前规模不大,但贡献的质量很高。许多贡献都是由linux内核开发人员做出的


几乎所有内容都属于“几千LOC”或更少的类别。

如果您想从一个小示例开始,请尝试查看基本Linux CLI实用程序的源代码,或者其中任何一个都有完整的源代码可用,并且是相对较小的代码库(一些比其他的大)。最简单的事情通常是从一个您以前使用过并且已经熟悉的实用程序开始。

请看一个关于如何使用C进行面向对象编程的近乎规范的示例。

您说的有多小?我一直认为Linux内核是一个值得研究的有趣项目。事实上,大多数大型C项目都是使用结构以面向对象的方式编写的。@Shickadance先生:现在太大了;)我在想几千块钱