[英]implementation of include preprocessor in c
我想编写一个C程序来实现预处理器的include
功能。
例:
在header.h中,我有以下代码:
char *test (void);
并在program.c中:
int x;
#include "header.h"
int
main (void)
{
puts (test ());
}
输入是program.c
。
输出必须是:
int x;
char *test (void);
int
main (void)
{
puts (test ());
}
我怎样才能做到这一点?
您需要逐行阅读输入文件。 检查行是否以#include开头(带有可选的前导空格)。 如果没有,请打印您已阅读的行。 如果是这样,请改为打开指定的文件,然后在其上运行相同的算法(以处理辅助#includes)。
您可以运行gcc -E“您的源文件”,然后过滤包含“#”的行,左边是您想要的,宏将替换为其实际形式。
例如:
gcc -E hello.c|sed '/# .,$/d' > a.c
ac是您想要的文件。
使用gcc时
gcc -E -P program.c
要么
cpp -P程序
使用Visual c时
cl / EP程式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.