Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                                                                                            
                
        
我有以下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.hhelper.c中定义的方法才能完成程序。知道有什么问题吗?我机智的尽头。

最佳答案

我解决了这个问题。

helper.h中的一个常量称为FILE,这显然引起了问题。谢谢大家的帮助!

关于c - FILE *的C错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49523242/

10-13 05:14