我对一年前在安卓的Dalvik平台中推出的此次提交感到非常疑惑和困惑。 文件扩展名被更改为C++扩展名,以“将解释器移入C++”——使用编译器的C++前端。 这种变化有什么好处呢?Dalvik 平台是一个 100% C 和汇编语言项目,没有使用任何 C++ 特性。
我只能猜测,但考虑到Android系统的复杂性增加,C++的作用域特性(类和命名空间)可能会使代码库更易于管理。编辑:即使项目目前没有使用任何C++功能,他们可能只是提前规划。除了一些小差异(即大多数人都避免的一些参数约定),C源代码可以不经修改地编译为C++。尽管如此,在某些领域,C++语法比C更严格(C允许您将void指针分配给另一种指针类型而无需转换; 在C ++中,这是一个错误),强制执行此严格性可避免未来出现问题。*)(这是一个过于简单化的观点,请参见评论)进一步改变的原因可能是因为大多数现代开发更喜欢C++而不是C,因此可以使用更丰富的工具集。再次推测,但在Android诞生时,C可能是嵌入式设备开发的唯一可行选择,而现在这种限制已不再是问题。