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

奥斯瓦尔德·文尼(Oswald Vinny)

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

Bartvbl

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

在C / C ++中,存储在不同文件中的函数“包含”在其他文件中,这实际上意味着将它们完整地复制并粘贴到文档中。考虑到当时的硬件功能,这在当时是一个不错的主意,但是如今,更多现代语言使用了一种称为“符号导入”的语言。

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

这使得预处理器对于语言的编译过程而言是不必要的,因此,连同其他原因一起被省略了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

卸载应用程序:“应用程序是以下应用程序的一部分:...”为什么这样?

从 C# 程序集中提取版本作为 Jenkins 管道的一部分

如何使用oprofile计算C程序一部分的执行时间?

编译用于GPU的C ++程序的一部分

作为C#安装程序向导的一部分安装Matlab MCR

为什么这些行是 Java Development Kit 的一部分?

C是.NET框架的一部分吗?

在C中获取整数的一部分

为什么静态数据成员不是c ++中对象的一部分?

为什么std :: nullopt_t是C ++标准的一部分?

接口不是Java中对象层次结构的一部分。为什么 ?它们属于某个等级吗?

为什么这部分代码要先于另一部分执行?

什么是Azure上的Web作业,它是Web应用程序的一部分还是独立的

为什么nullptr是核心语言的一部分,而nullptr_t是STL的一部分?

有没有办法像c#这样在Excel的VBA中注释行的一部分

编程语言可以成为平台的一部分吗?(与C#和Java相关)

在Java 7中删除二进制文件的一部分的最佳方法是什么

将函数重新定义为自身的一部分——为什么非法?

为什么数组的维是其类型的一部分?

为什么SmsMessage只返回短信的一部分?

pgrep完全匹配不起作用,只有一部分,为什么?

grep是coreutils的一部分吗?(如果没有,为什么?)

我的代码的哪一部分导致了“超时错误”,为什么?

为什么会抛出方法签名的一部分

为什么安装 vim 的一部分而不是整个目录?

为什么我的CSS样式的一部分不适用?

为什么String.indexOf方法不是接口CharSequence的一部分?

为什么yum-config-manager不是rhel 7.6的一部分

为什么我要在特征上实现方法而不是特征的一部分?