虽然人们似乎喜欢 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/