预处理器 IDE 是唯一的特征吗?

Is the preprocessor IDE only feature?

我尝试进行研究,但无法找到预处理器的实际来源 - 它们是 IDE 的一部分吗(意味着每个 IDE 都有自己的实现), 独立程序还是编译器的一部分?

如果它们成为现代编译器的一部分,我想它在历史上并不是这样的。当时是怎么运作的?

谢谢

不,预处理器是编译器的一部分。如果您从控制台编译(即直接使用 gcc 或其他编译器),预处理仍然有效。

预处理是一个非常强大的工具,我相信它一直是编译器的一部分。或者,如果一些早期的编译器缺少此功能 - 那么,就必须手动完成预处理器的工作。

关于这种语言的最早工作(几年后将得名 "C" 始于 1969,基于语言 BCPL预处理器于 1972 年问世

C当时还在开发中,所以我们可以说预处理器自C本身就存在了。从来没有没有预处理器的 C 编译器。。 C++ 在 C 之后出现,并且从一开始就有预处理器。

如果预处理器是一个独立的可执行文件而不是编译器,这无关紧要,但通常它是编译器的一部分。那时候还没有IDE。


Here's a link 您可以在其中阅读更多内容。这是关于预处理器的部分:

许多其他变化发生在 1972 年 3 月左右,但最重要的是 预处理器 的引入,部分原因是Alan Snyder [Snyder 74],也是对 BCPL 和 PL/I 中可用的文件包含机制的效用的认可。它的原始版本非常简单,只提供包含文件和简单的字符串替换:无参数宏的#include 和#define。此后不久,主要由 Mike Lesk 和 John Reiser 对其进行了扩展,将宏与参数和条件编译结合起来。预处理器最初被认为是语言本身的可选附件。事实上,多年来,除非源程序在其开头包含特殊信号,否则它甚至不会被调用。这种态度一直存在,并解释了预处理器语法与语言其余部分的不完全集成以及早期参考手册中对其描述的不精确。