gpt4 book ai didi

c++ - 要在我的 C++ 程序中使用 C 代码,我需要做什么特别的事情吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:36 25 4
gpt4 key购买 nike

注意:我使用 g++ 4.3.4 版来编译我的 C++ 代码。

到目前为止,每当我想在我的代码中使用 C 风格的语言元素时,我似乎都可以将 C 的东西混合在我的 C++ 中并与我的 C++ 一起包含。

我知道 C++ 大部分向后兼容 C...所以我想我的问题是这些:

C 的哪些部分与 C++ 不向前兼容?

如果我继续天真地将 C 的东西插入我的 C++ 代码中,专业程序员会 mock 我吗?

在同一个 .cpp 文件中包含 C 和 C++ 代码的正确方法是什么?

我可以继续使用 g++ 来编译我的混合代码吗?

对于这个问题,我主要关注处理单个 .cpp 文件和单个 g++ 命令来编译它的解决方案。在这一点上,我真的不关心链接内容。

最佳答案

挑选出几个问题:

“将 C 和 C++ 代码放在同一个 .cpp 文件中的正确方法是什么?”“我可以继续使用 g++ 来编译我的混合代码吗?”

如果您想在与常规 C++ 相同的文件中混合使用 C 风格的 C++,请继续这样做。您可以相信编译器会发现任何问题 - 它们将是最小的并且不会影响结构。听上去,您对获得 C 链接本身并不感兴趣,因此即使 C 代码在其自己的文件中,也可以将其编译为 C++。事实上,这通常是作为从 C 迁移到 C++ 的一种方式来完成的。

如果您采用这种方法,您的代码就不是真正的混合 C/C++。它是 C++,其中一些代码使用 C 风格的过程习语。 C++ 完全旨在支持这一点。

“如果我继续天真地将 C 的东西插入我的 C++ 代码中,专业程序员会 mock 我吗?”

这取决于您在哪里使用它以及为什么使用它。结构良好的 C 代码是好的代码。有时 C+ 在特定问题上比 C 好很多。在使用 C 风格的动态内存管理之前,请认真考虑。如果您使用原始的 malloc()/free() 并且弄错了,您将活该被 mock 。

我建议,如果您开始采用这种方法,您以后可能会花时间回顾并考虑使用 C++ 习语而不是过程 C 是否会更好。

关于c++ - 要在我的 C++ 程序中使用 C 代码,我需要做什么特别的事情吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6950381/

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