预处理器 IDE 是否仅具有功能?
Is the preprocessor IDE only feature?
我试图做我的研究,但无法找到预处理器的实际来源 - 它们是IDE的一部分(意味着每个IDE都有自己的实现(,独立程序还是编译器的一部分?
如果它们成为现代编译器的一部分,我想历史上不会这样。当时是怎么回事?
谢谢
几年后命名为"C">的最早语言工作始于1969年,基于BCPL语言。预处理器于 1972 年诞生。
当时 C 仍在进行中,因此我们可以说预处理器自 C 本身以来就存在。从来没有没有预处理器的C编译器。C++是在 C 之后诞生的,它从一开始就有预处理器。
如果预处理器是与编译器不同的可执行文件,则无关紧要,但通常它是编译器的一部分。当时还不存在 IDE。
这是一个链接,您可以在其中阅读更多内容。这是关于预处理器的部分:
许多其他变化发生在 1972-3 年左右,但最重要的是引入了预处理器,部分是在 Alan Snyder [Snyder 74] 的敦促下,但也认识到 BCPL 和 PL/I 中可用的文件包含机制的实用性。它的原始版本非常简单,只提供包含的文件和简单的字符串替换:无参数宏的 #include 和 #define。此后不久,它被扩展,主要是由Mike Lesk和John Reiser扩展,以将宏与参数和条件编译合并。预处理器最初被认为是语言本身的可选附加组件。事实上,几年来,除非源程序在其开始时包含特殊信号,否则甚至不会调用它。这种态度持续存在,并解释了预处理器的语法与语言其余部分的不完全集成以及早期参考手册中其描述的不精确性。
不,预处理器是编译器的一部分。如果您从控制台编译(即直接使用 gcc 或其他编译器(,预处理仍然有效。
预处理是一个如此强大的工具,我相信它一直是编译器的一部分。或者,如果一些早期的编译器缺乏这个功能 - 好吧,人们必须手动完成预处理器的工作。
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- #定义c-预处理器常量..我做错了什么
- 多态性和功能结合
- 预处理器:插入结构名称中的前一个行号
- 如何在c++中实现处理器调度模拟器
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++中获得"静态纯虚拟"功能?
- C/C++预处理器是否可以检测一些编译器选项
- 两个文件使用彼此的功能-如何解决
- 预处理器是否可以更改运算符重载功能的符号?
- 预处理器 IDE 是否仅具有功能?
- 多个处理器C 的MPI_SEND和MPI_RECV功能
- 从没有预处理器的HANA元组中创建功能签名
- 是C 库中必需的基于预处理器的功能开关
- FPU控制功能是否与x64_64处理器相关
- C 预处理器中的功能绑定操作
- 在非haswell处理器上禁用AVX2功能