我应该将我的程序从 C 更新为现代 C 或 C++ 吗? [已关闭]

问题描述 投票:0回答:5

我有一个 20 世纪 90 年代用 C 编写的旧程序。 我想更新它,以便它适用于下一个人和现代编译器。 目前我正在使用一个非常旧版本的 TurboC 来进行更改。 我应该专注于用现代 C 或 C++ 重写它吗? 哪一个最容易使此代码更新,而无需重写太多并且能够重用大部分现有代码?

我的编程背景主要是 Perl、Python、PHP、Powershell 和 Visual Basic 等编程语言,所以我不太熟悉 C 和 C++ 之间的差异。

c++ c
5个回答
5
投票

C 和 C++ 是不同的语言,而不是同一语言的不同版本。坚持使用 C,尽管您可以使用标准新版本的奇特功能,例如 C99。


5
投票

你的最后一句话几乎回答了你的观点。如果您不熟悉这些差异并且只知道较旧的语言,我不会更新此程序,除非它存在影响许多用户的严重错误。

如果您有更新的编译器,您可以在 C 世界中更新它以遵守 C99 或 C11


3
投票

鉴于:

有一个 20 世纪 90 年代用 C 编写的旧程序。

您有两个问题:

我应该专注于用现代 C 语言重写它吗? 也许,也许不是。 我会尝试遵守标准 C89、C99 或 C11。 这主要取决于您的工具以及将会发生多少新的开发。

您喜欢在作用域开头以外的地方声明变量吗? 如果是这样,那么可能更新到C99。 您是否使用任何真正喜欢 C89 并按照 C99 约定显示错误或警告的工具? 如果是这样,那就坚持使用 C89。

如果该计划不断更新并且您正在雇用年轻人,那么更新的会议可能会有所帮助。

我应该专注于用 C++ 重写它吗? 没有。


3
投票

大多数编写良好的 C 程序也是有效的 C++ 程序,或者只需要一点点调整。相反的情况则不然。

坚持使用 ANSI/ISO C 并为下一个维护人员敞开大门可能更容易。


2
投票

迁移到现代 C 编译器与迁移到现代 C++ 编译器可能需要付出同样的努力。 C 和 C++ 的发展出现了分歧,两者都有相似的功能,但它们不兼容源代码。

有几个因素会导致我选择更新到 C++:

  • 现代 C 似乎没有 C++ 那样受到支持。例如,C 中的许多新事物似乎只能按照 C++ 的要求来实现,尤其是在 Microsoft 世界中。 VS 除了 C++ 之外连 C99 都不支持,更不用说 C11 了。

  • C++ 是更好的 C:“C++ 是“更好的 C”,因为它支持使用 C 进行的编程风格,具有更好的类型检查和更多的符号支持(而不损失效率)。”现代版本的 C 仍然如此。

  • C++ 添加了支持一些非常强大的技术的功能。真正利用它们可能最好留给库开发人员,但这意味着 C++ 可以支持真正出色的库。

© www.soinside.com 2019 - 2024. All rights reserved.