使用gcc的C++前端编译C代码的好处

Jul*_*rra 13 c c++ android gcc dalvik

一年前推出的android dalvik平台上的这个提交非常疑问和困惑.

文件扩展名已更改为C++扩展,以便"将解释器移动到C++中" - 使用编译器的C++前端.

这种变化可能带来什么好处?Dalvik Platform是一个100%的C&asm项目,并没有使用任何C++功能.

Ton*_*ony 3

我只能推测,但考虑到 Android 系统的复杂性如何增长,C++ 的范围功能(类和命名空间)可能会使代码库更易于管理。

编辑

即使该项目当前没有使用任何 C++ 功能,他们也可能只是提前计划。

除了一些细微的差别(即大多数人都避免的一些参数约定)之外,C 源代码无需修改即可编译为 C++。话虽这么说,在某些领域,C++ 语法比 C 更严格(C 允许您将 void 指针分配给另一个指针类型而不进行强制转换;在 C++ 中,这是一个错误),并且强制执行这种严格性可以避免出现问题。 *

*)(这是一个过于简单的观点,请参阅评论)

进行更改的另一个原因可能是,由于大多数现代开发更喜欢 C++ 而不是 C,因此可以使用更丰富的工具集。

再次猜测,但 Android C 诞生时可能是嵌入式设备开发唯一可行的选择,现在这种限制不再是问题。

  • 不,C和C++基本上只兼容接口,不兼容编译。有很多很多小陷阱,从命名类型的范围到编译时常量的不同概念,等等。 (3认同)