【问题标题】:C theory/general practice related to "splitting" the system into x number of source files与将系统“拆分”成 x 个源文件相关的 C 理论/一般实践
【发布时间】:2014-04-17 12:43:57
【问题描述】:

在用 C 编程时,我有一个简单的问题。正如标题所示,我正在用 C 编写一个简单的应用程序,但我发现自己在单独的源文件中定义了相当大的函数,因此它使维护和调试变得更加容易,但我的问题是ac 源文件中有标准的 X 行,然后您应该将其“拆分”为多个文件,或者它是否非常依赖于相关的系统/功能。

例如,假设我有 20 个源文件,每个文件中有 1 个函数,这些函数有些相关,但它们都做不同的事情(例如,它们都以某种方式操作相同的结构)如果理论上你有这 20 个文件,或者1个更大的文件,20个函数,X结构的修改保留在同一个文件中?

我的想法是“拆分”越多,编码就越好/越容易,但我对 C 语言还是很陌生。

我们将不胜感激。

干杯, 克里斯。

【问题讨论】:

标签: c theory


【解决方案1】:

文件的拆分与功能/系统无关。这完全取决于程序员。我在单个 C 文件中看到了 1000-1500 行甚至更多行代码。如果它们彼此之间没有太大不同,那么将二十个函数保存在同一个文件中是有意义的。但是,如果您在文件之间拆分函数,请确保在编译它们时正确编写 Makefile。 “分裂越多,编码越容易”这句话值得商榷。

【讨论】:

  • 谢谢,我认为这主要是基于案例的,但我很好奇“一般”的做事方式是什么。
  • 编写 20 个密切相关的函数的一般方法是将它们放在同一个文件中,并为该文件命名,以说明它包含的函数。这有助于使用 C 进行多层编程。
【解决方案2】:

我喜欢 alk 在封闭副本中的回答:如果您在 C 中遵循面向对象的风格,即对它们使用结构和操作,则文件以与在 C++ 中相同的方式非常自然地分离。对相同数据类型的操作,一起形成一个“穷人的班级”。

【讨论】:

    【解决方案3】:

    将与同一概念领域相关的代码放在一起是有意义的。例如,如果您有适用于矩阵的函数,那么拥有一个名为 matrices.c 的文件似乎很有意义,其中有 X 个矩阵函数。一个叫做 render 的函数显然不属于那里。

    然而,如果矩阵函数的数量变得巨大,将它们全部塞入一个文件开始感觉不对。在这种情况下,我会寻找子类别并为每个子类别创建单独的文件,例如 2d_matrix.c、3d_matrix.c 等。

    至于您在重新分类之前放入文件中的功能数量,这取决于个人选择,有时取决于您所在团队的开发规则。

    同样的考虑有时也适用于函数的大小。我工作过的一个团队不允许代码超过两个屏幕高,觉得应该将这样的代码分解成一些更小的函数,这样可以使代码更具可读性。

    对我来说,以一种有意义的方式构建您的代码。将相关代码放在一起,并注意函数的大小、文件中的函数数量(太少或太多)。

    函数越大,越容易意外破坏它。

    你在一个文件中塞入的代码越多,其他人就越有可能有点草率并在同一个文件中塞入更多甚至不相关的代码。

    【讨论】:

      猜你喜欢
      • 2017-06-27
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多