c++ - 为什么有人会使用 C 而不是 C++?

标签 c++ c

虽然人们似乎喜欢 complain关于 C++,我还没有找到很多证据来说明为什么要选择 C ​​而不是 C++。 C 似乎并没有受到那么多的抨击,如果 C++ 有所有这些问题,为什么你不能把自己限制在 C 子集上呢?你有什么想法/经验?

最佳答案

Joel 的回答很好,因为您可能不得不使用 C,尽管还有其他一些原因:

  • 您必须符合行业准则,这些准则更容易在 C 中证明和测试
  • 您有使用 C 的工具,但没有使用 C++(不仅要考虑编译器,还要考虑所有支持工具、覆盖范围、分析等)
  • 您的目标开发人员是 C 大师
  • 您正在编写驱动程序、内核或其他低级代码
  • 您知道 C++ 编译器不擅长优化您需要编写的代码类型
  • 您的应用不仅不适合面向对象,而且更难以这种形式编写

不过,在某些情况下,您可能想要使用 C 而不是 C++:

  • 你想要汇编程序的性能而不需要在汇编程序中编码的麻烦(理论上,C++ 能够实现“完美”的性能,但编译器并不擅长看到优秀的 C 程序员会看到的优化)

  • 您正在编写的软件是微不足道的,或者几乎是微不足道的 - 拿出微型 C 编译器,编写几行代码,编译,一切就绪 - 无需打开带有助手的大型编辑器,无需编写几乎空无用的类、处理命名空间等。您可以使用 C++ 编译器执行几乎相同的操作,只需使用 C 子集,但 C++ 编译器速度较慢,即使对于小型程序也是如此。

  • 您需要极高的性能或较小的代码大小,并且知道由于库的大小和性能,C++ 编译器实际上会使其更难完成。

您认为您可以只使用 C 子集并使用 C++ 编译器进行编译,但您会发现,如果这样做,您会得到稍微不同的结果,具体取决于编译器。

无论如何,如果您这样做,您使用的是 C。您的问题真的是“为什么 C 程序员不使用 C++ 编译器?”如果是,那么你要么不了解语言差异,要么不了解编译器理论。

关于c++ - 为什么有人会使用 C 而不是 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497786/

相关文章:

c++ - 为什么一个函数在末尾有常量这个词,即使它确实改变了一个变量

c++ - 重载调用不明确 : one-pair inline map as constructor argument

c++ - C2057 const 值在构造函数初始化列表中定义时出错

java - 长数据类型计算——为什么Java比C++快很多

c - 段错误(核心已转储)。没有编译错误。搜索了论坛

c++ - 在应用程序运行时禁用 WER

c++ - std::reference_wrapper 不能很好地与 std::bind 一起工作

c - 我需要将指针从结构单独写入文件吗?

c - 文件 IO 段错误

CS50 - 恢复 - 操作 Card.raw PSET3