繁体   English   中英

预处理器 C 程序替换包含头文件

[英]Preprocessor C program to replace include headers

我有家庭作业,我需要编写一个程序来用actual.h'文件替换C文件的包含命令(假设没有标准库包含)(执行预处理器的工作)。

我想使用正则表达式匹配,但由于我们只允许使用 ansi-C 的标准库,所以不允许使用正则表达式。

我不确定这样做的有效方法是什么?

编辑:无需检查#defines#ifdefs

我建议您按照本指南创建程序:

  1. 以只读方式打开目标 c 文件。
  2. 打开目标文件只写。
  3. 创建一个 function 传递输入文件和 output 文件,我将调用此 function “expand_function”。
  4. 在expand_function中读取输入的每个字节,并在读取每个字符时检查是否为#,然后测试是否为include关键字,最后如果所有条件都匹配,则打开将在include前面的文件名,然后调用再次使用新的输入文件和相同的 output 文件的 expand_function(不要忘记关闭所有打开的文件),最后继续循环。 如果任何条件不匹配,则将所有读取字节写入 output 文件中。
  5. 额外:检查您是否没有在 expand_function 开头的包含死循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM