C错误与文件*

时间:2018-03-27 22:11:37

标签: c gcc stdio

我有以下C代码:

#include <stdio.h>
#include "helper.h"

int main(int argc, char ** argv){
    if (argc < 4){
    fprintf(stderr, "Usage: ./program_name <DISK> <LOCAL_FILE> <DESTINATION> \n");
    exit(1);
    }

    FILE * target; 
}

helper.h定义如下:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <string.h>
/*
A bunch of function headers and global variables below, none of which 
are called target.
*/

当我尝试使用以下命令编译上述内容时:

gcc -Wall -o program_name program_name.c

我收到以下错误:

program_name.c:19:12: error: use of undeclared identifier 'target'
    FILE * target;
           ^
1 error generated.

我发现删除原始程序中的#include "helper.h"语句会停止编译错误......但问题是我需要helper.h和{{1}中定义的方法完成程序。知道它有什么问题吗?我的智慧结束了。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。

helper.h中的一个常量被称为FILE,这显然会导致问题。感谢大家的帮助!