为什么Preproccessor不是像C& C这样的Java程序的一部分C ++?

时间:2017-01-29 12:58:24

标签: java toolchain

在C / C ++中,程序首先被提供给预处理器以包含文件和文件。执行宏扩展等...然后给编译器将代码转换为汇编格式并继续进行。但在Java中我没有看到预处理器的使用。为什么这样然后谁做了通常预处理器的所有任务处理?

1 个答案:

答案 0 :(得分:3)

预处理器不是Java中编译过程的必要步骤。

在C / C ++中,存储在不同文件中的函数是"包含"在其他文件中,这实际上意味着将它们全部复制并粘贴到文档中。考虑到当时的硬件功能,当时这是一个非常好的主意,但现在更多的现代语言使用称为"符号导入的东西"。

符号导入涉及在另一个文件中查找符号,而不是直接使用文本。在Java中,这可能涉及导入常量或类。这些导入充当其他文件中代码的引用。因此,Java不必经历使预处理器复制和粘贴代码并最终确定哪些代码属于哪个文件的麻烦,而是允许Java直接在语义级别上执行这些导入。

这使得预处理器不再需要语言的编译过程,因此,除了其他原因外,还有其他原因。