数据结构与算法分析——c语言描述 习题1.4

本文介绍如何编写一个C程序,该程序处理#include语句,读取被包含的文件并输出内容。程序需要处理文件的嵌套包含,但避免无限循环,确保文件不包含自身。
摘要由CSDN通过智能技术生成

C提供形如 #include filename 的语句,它读入文件filename并将其插入到include语句处。include语句可以嵌套;换句话说,文件filename本身还可以包含include语句,但是显然一个文件在任何链接中都不能包含它自己。编写一个程序,使它读入被include语句修饰的一个文件并且输出这个文件。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define TRUE (1)
#define FALSE (0)
#define MAX_FILENAME (256)
#define MAX_FILEBUFF (MAX_FILENAME + 14)

typedef enum row_status 
{
    BEFOR_ROW = 0, 
    BEHIND_ROW, 
    NULL_ROW
}row_status;

typedef struct file_name
{
    char name[MAX_FILENAME];
    struct file_name *pNext;
}file_name;

int isIncludeFiles(char *buff, size_t len, char *fileName, size_t fileNameLen);
void proccesFile(const char *filename);
void realProccesFile(FILE *fp);

int main(void)
{
    proccesFile("test.h");
    return 0;
}

void proccesFile(const char *filename)
{
    FILE *fp = NULL;
    static file_name *pFileNameList = NULL;
    file_name *currentFileName = NULL;
    file_name *tmpFileN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值