c - 从 .c 文件生成 .i 文件

标签 c c-preprocessor

<分区>

我知道 gcc 可以做到这一点。但我想要一个可以这样做的 C 程序。该程序应接受 .c 文件并进行预处理操作并生成 .i 文件 仅供引用:这是一个分配给我在他大学的亲戚的项目。

最佳答案

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

再读一遍你的问题。您想编写创建该文件的程序。 那么你必须为此做很多工作。首先你需要阅读#include , #define和条件包含 ( #if, #elif #endif ) 然后你需要检测 < >" " , 读取这些符号内的文件。那么你必须 fopen()这些文件并将它们粘贴到 .i 文件中。

总而言之,这将是很多工作,但这就是做到这一点的方法。

编辑它不仅仅是复制过去。读取头文件意味着在 #include 中现在说你的头文件是 abc.h,然后你必须搜索所有可以存在 .h 文件的预定义位置。如果找到,您需要 fopen() 该文件读取其内容并将其写入您的 .c 文件。另外,您必须注意宏和条件包含。相信我,我已经尝试过了,它的工作量很大。但你可以尝试它会提高你的基础

关于c - 从 .c 文件生成 .i 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44898539/

相关文章:

c - C 中的数字模式

c - 如何分配具有连续内存的二维数组?我如何使用它来访问行和列?举个例子

c - 我怎样才能每次都使用相同的随机数组?

c++ - #nomacros (EP003) 是什么,它还活着吗?

c - 如何用C检测你的机器是否是32位

c - 将 int 数组整合到 char 数组中

c - __FUNCT__ 有什么用?

c++ - 宏定义未按预期替换?

C:如何屏蔽宏参数中的逗号?

c - 使用 typeof 将变量声明转换为类型?