c - 构建 C 应用程序?

标签 c architecture

我打算用 C 开发一个应用程序。我的编程经验一直是使用面向对象的语言。因此,在设计应用程序时,我总是从类、接口(interface)、继承、多态性等方面考虑。

我看过的所有 C 书籍都涉及如何用 C 编程或专注于特定主题,我找不到任何谈论 C 应用程序架构的书。那么当你如何构建一个 C 应用程序时OOP 功能不可用?你如何保持一切模块化和组织良好并避免代码重复(没有 OOP 似乎会有很多代码重复)?

编辑: 我不是在寻找“如何用 C 编写 OOP 代码”的答案。我正在寻找构建 C 应用程序的标准实践方法,以便它们模块化且组织良好。如果标准实践方法是破解某些 OOP 功能,那么这很公平,但如果不是,那么告诉我走那条路就没有意义了。

最佳答案

这是一种不同的思维方式。 C的核心哲学可以概括为:

data + algorithms = programs

所以用 C 设计一个应用程序:

  1. 您需要仔细考虑数据是什么,并定义能够很好地反射(reflect)该数据的结构,并促进不同数据 View 之间的关系。

    <
  2. 您需要考虑哪些算法将对哪些数据进行运算,以及它们会产生哪些数据。这有助于阐明您应该拥有的 struct,并有助于显示应该将哪些内容一起阻止以创建可重用的代码块。

  3. 从 OOP 方法转向这种方法的一种方法是想象一个 struct + 一个 .c 文件 = 一个类,然后将结构定义放入 .h 文件中以及外部可访问的函数(公共(public)方法)。

  4. 您必须编写大量代码来完成无聊的事情,例如内存分配和释放以及所有爵士乐。这并不像听起来那么糟糕,但请将其纳入您的设计中。

关于c - 构建 C 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15610939/

相关文章:

architecture - CQRS:查询和业务规则

asp.net-mvc - 如何决定在 Web 应用程序中使用 MVC 或 3 层架构中的哪一个?

c - Pthread 线程创建后立即运行

python - 在父进程和子进程之间使用管道

c - 在 C 中实现具有邻接表的图

java - 向应用程序添加脚本安全性

web-applications - 使用有状态的Web服务器有意义吗?

architecture - CMS通用架构

c - 计算超过 1 个字节的 CRC16 MCRF4XX 时出现问题

c - 在使用局部变量的 C 分配/取消分配内存中哪个更好?为什么?