使用C++还是C?C++ 和 C 的设计哲学并不一样,两者取舍不同,所以不同的程序员和软件项目会有不同选择,难以一概而论。与 C++ 相比,C 具备编译速度快、容易学习、显式描述程序细节、较少更新标准(后两者也可同时视为缺点)等优点。在语言层面上,C++ 包含绝大部分 C 语言的功能(例外之一,C++没有C99的变长数组VLA),且提供 OOP 和 GP 的特性。但其实用 C 也可实现 OOP 思想,亦可利用宏去实现某程度的 GP,只不过 C++ 的语法能较简洁、自动地实现OOP/GP。C++ 的 RAII(resource acquisition is initialization,资源获取就是初始化)特性比较独特,C/C#/Java 没有相应功能。回顾历史,Stroustrup 开发的早期 C++ 编译器 Cpre/Cfront 是把 C++ 源代码翻译为 C,再用 C 编译器编译的。由此可知,C++ 编写的程序,都能用等效的 C 程序代替,但 C++ 在语言层面上提供了 OOP/GP 语法、更严格的类型检查系统、大量额外的语言特性(如异常、RTTI等),并且 C++ 标准库也较丰富。有时候 C++ 的语法可使程序更简洁,如运算符重载、隐式转换。但另一方面,C 语言的 API 通常比 C++ 简洁,能较容易供其他语言程序调用。因此,一些 C++ 库会提供 C 的 API 封装,同时也可供 C 程序调用。相反,有时候也会把 C 的 API 封装成 C++ 形式,以支持 RAII 和其他 C++ 库整合等。