【发布时间】:2011-07-10 04:30:50
【问题描述】:
我正在开发一个项目,它有一个相关的 Ansi-C 代码库。 (让我称之为“主要”代码库)。
我现在面临一个典型问题(如下所述),我相信如果我手头有一种面向对象的语言,我将能够轻松解决这个问题。
问题是这样的: 我将不得不启动多个代码库;即我将不得不开始支持并行代码库(将来甚至可能更多)。所有新(即并行)代码库的初始代码库最初将与旧(即“主”)代码库相同。
当我们谈论“C”语言时,我一直在考虑将“#ifdef”语句添加到代码中,并在这些“ifdef”块中编写分支空间代码。
希望我把问题说清楚了(够了!),我想听听关于聪明的模式的想法,这些模式可以帮助我在 Ansi C 中优雅地处理这个问题。
干杯
【问题讨论】:
-
我不明白为什么使用面向对象的语言会更容易。正如乔纳森所说,这里最重要的是明确区分功能和,以便有一个很好的方法来跟踪差异。具有不同分支的大型 C 项目的一个很好的例子是 linux 内核。它使用 git 进行分布式版本控制。
标签: c design-patterns conditional-compilation multiple-projects