gpt4 book ai didi

c++ - 用 C++ 编译 GNU C 项目

转载 作者:搜寻专家 更新时间:2023-10-31 01:36:38 25 4
gpt4 key购买 nike

我刚加入一个项目,有一堆代码(过去 5 年由 4 或 5 个不同的人编写)。此时都是 C,但我想将项目迁移到 C++ 以利用 OOP。

第 1 步将简单地保留所有现有代码,只选择性地将非常小的功能片段转换为面向对象的。

我的理解是 C 可以由 C++ 编译,但也许我对此有误。

因此,在我投入大量时间尝试实际执行之前,我是否能够相对轻松地使用 C++ 编译现有的 C 代码?

或者,这是否可能需要大规模迁移才能发挥作用?

哪些因素会影响我提出的任务的复杂性?

所以要明确一点——我不是问将所有代码转换为对象、将函数转换为方法等的项目有多大——而是,我只是问可能面临使用 C++ 编译器而不是 C 编译器编译现有 C 代码的问题。

提前致谢 - 我期待您能提供任何帮助/指导。

编辑

听起来这真的不是一个好主意。我一直认为 C++ 是 C 的扩展,但听起来它们差异很大,因此这不是一个可取的路径。最终,我并没有将它们视为不同的语言,而是希望 c++ 比听起来更向后兼容 c。我最初的搜索看起来人们已经取得了不同程度的成功,但这里的回答让我觉得我真的应该将它们视为两种不同的语言。谢谢!

最佳答案

I always thought of c++ as an expansion of C, but it sounds like they're different enough that this is not an advisable path.

C++ 不是 C 的扩展。它们是完全不同的语言。用 C++ 编译 C 代码并不是简单地启用“面向对象模式”。当您使用 C++ 编译器编译除琐碎的 C 代码之外的任何东西时,由于两种语言之间的差异,您可能会将自己打开一个受伤的世界。

am I likely to be able to get the existing C code to compile using C++ relatively easily?

同样,您有一个根本性的误解——C++ 不是 C 的一些扩展版本。它们是不同的语言。

最好的做法是慢慢将您的代码迁移到 C++,但使用两个不同的编译器。用C编译器编译C代码,用C++编译器编译C++代码。这不是一项具有挑战性的壮举,因为任何现代编译器套件(如 GCC 和 clang)都可以很好地编译 C 和 C++。

is this likely to involve a massive migration before it will work?

如果您打算将代码转换为 C++,那么可以。

有一件事值得一提:如果您使用 C++ 编译器编译 C 代码,并称它为 C++ 编程,那么您就失去了 C++ 开发环境的精神。如果您使用 C++ 编程,但使用的 C 代码几乎没有面向对象,那么使用 C++ 有什么意义呢?只需跳过 OO 和 C 代码的开销。使用 C++ 编译器并不是什么神奇的过程可以立即让您的代码变得更好。

关于c++ - 用 C++ 编译 GNU C 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35304219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com