我应该将我的程序从C更新为现代C或C ++吗?

时间:2012-06-20 16:26:27

标签: c++ c compiler-construction

我有一个旧的程序,用1990年代的C编写。我想更新它,以便它适用于下一个人和现代编译器。目前我正在使用一个非常旧版本的TurboC来进行更改。我应该专注于在现代C或C ++中重写它吗?最简单的方法是使这些代码更新,而不必重写太多,并且能够重用大部分现有代码?

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

5 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:5)

你的最后一句话几乎可以回答你的情绪。如果您不熟悉这些差异,并且您只知道较旧的语言,我将不会更新此程序,除非它有可怕的错误影响许多用户。

如果您有更新的编译器,您可以在C世界内更新它以符合C99或C11

答案 2 :(得分:3)

假设:

有一个旧的程序,用1990年代的C编写。

你有两个问题:

我应该专注于在现代C中重写这个吗? 也许,也许不是。我会尝试遵循标准的C89,C99或C11。这主要取决于您的工具以及将会发生多少新的发展。

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

如果该计划不断更新并且您正在招聘年轻人,那么较新的惯例可能会有所帮助。

我应该专注于用C ++重写吗? 否。

答案 3 :(得分:3)

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

可能更容易坚持使用ANSI / ISO C并为下一个维护者打开两扇门。

答案 4 :(得分:2)

与现代C ++编译器相比,转向现代C编译器的努力可能与此类似。 C和C ++的发展有所不同,每个都有类似的功能,但它们不是源兼容的。

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

  • 现代C似乎并不像C ++那样享受那么多的支持。例如,C中的许多新东西似乎只能按照C ++的要求实现,特别是在Microsoft世界中。 VS甚至不支持C99,除了C ++中的内容,更不用说C11了。

  • C++ is a better C:“C ++是一个”更好的C“,因为它支持使用C完成的编程风格,具有更好的类型检查和更多的符号支持(不会降低效率)。”现代版本的C仍然如此。

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