从.c文件生成.i文件

从.c文件生成.i文件,c,c-preprocessor,C,C Preprocessor,我知道gcc就是这么做的。但我想要一个C程序,可以这样做。程序应该接受一个.c文件,并执行预处理操作并生成.i文件 仅供参考:这是一个分配给我在他学院的亲属的项目。使用命令cc-E file.c-o file.i这将为您提供预处理的文件。有关更多信息,请参阅第页 再读一遍你的问题。您想编写创建该文件的程序。 首先你需要阅读\include,\define和条件包含(\if,#elif#endif),然后你需要检测和”,阅读这些符号中的文件。然后您必须fopen()这些文件并将它们粘贴到.i文件中

我知道gcc就是这么做的。但我想要一个C程序,可以这样做。程序应该接受一个.c文件,并执行预处理操作并生成.i文件
仅供参考:这是一个分配给我在他学院的亲属的项目。

使用命令
cc-E file.c-o file.i
这将为您提供预处理的文件。有关更多信息,请参阅第页

再读一遍你的问题。您想编写创建该文件的程序。 首先你需要阅读
\include
\define
和条件包含(
\if,#elif#endif
),然后你需要检测
,阅读这些符号中的文件。然后您必须
fopen()
这些文件并将它们粘贴到.i文件中

总而言之,这将是一个很大的工作,但这是做它的方式


编辑这不仅仅是复制过去。读取头文件意味着在#include中,如果你的头文件是abc.h,那么你必须搜索所有预定义的位置,其中可以存在一个.h文件。如果找到它,您需要读取该文件的内容并将其写入.c文件。此外,您还必须注意宏和条件包含。相信我,我已经试过了,做了很多工作。但是您可以尝试一下,它将增强您的基本功能。如果您不能使用诸如gcc之类的外部程序,您必须自己实现C预处理器。“预处理指令”一节介绍了整个预处理器


或者,如果您不能使用其他程序,但不想自己实现它,您可以尝试将其用作库(尽管为此您需要C++)。

为什么?你想解决什么问题?为什么您不能简单地使用
gcc-E
?或者你想实现你自己的预处理器吗?GCC是一个C程序。。。所以……StytTeleNo,这是一个(令人惊讶的)C++程序。虽然旧版本是C.@n.m.-颜色让我惊讶。所以,C?@ StytotLeLoT中没有引导,但现在只能用另一个GCC(不是另一个C或C++编译器)引导。是的。我想写程序..读取头文件?意思是我需要复制粘贴所有文件,从头文件到.I文件?仅供参考:这是一个分配给我在他大学的亲戚的项目。教授可能已经给了做这个项目的一些条件。我不知道任何条件。谢谢你的帮助。这几乎澄清了一切。欢迎:)