C文件错误*

C文件错误*,c,gcc,stdio,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;

我有以下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; 
}
我得到以下错误:

program_name.c:19:12: error: use of undeclared identifier 'target'
    FILE * target;
           ^
1 error generated.
我发现在原始程序中删除
#include“helper.h”
语句会停止编译错误……但问题是我需要
helper.h
helper.c
中定义的方法来完成程序。知道有什么问题吗?我束手无策。

我解决了这个问题


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

为什么
\n");在另一行上?您需要发布编译并演示问题的代码。请看。当我将它从IDE复制到StackOverflow时,这是一个输入错误——在我的代码中不是这样的。我将对此进行编辑。在一些旧的C迭代中,在代码之前必须有变量声明。您是根据这些规则编译的吗?这种情况通常意味着在
的其他内容中有语法错误,例如缺少分号。一种方法是注释掉另一半内容,看看错误是否消失。继续二进制搜索,直到找到有错误的行。我认为这不是C90与C99的问题。这将导致不同的错误消息,如“警告:ISOC90禁止混合声明和代码”。(gcc的最新版本默认为
-std=gnu11
)我们需要一个。我会注意到,您向我们展示的代码中没有第19行,因此您没有向我们展示您的实际代码。我们无法调试看不到的代码。是的,这肯定会导致问题。
gcc -Wall -o program_name program_name.c
program_name.c:19:12: error: use of undeclared identifier 'target'
    FILE * target;
           ^
1 error generated.