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