C - “文件”错误的冲突类型

时间:2013-11-24 19:31:20

标签: c file types

当我尝试编译我的C程序时,出现以下错误:

file.c:16:1: error: conflicting types for 'file'

关于此代码:

char *filename = "dictionary.txt";
FILE *file;
file = fopen(filename, "a+");

我用过这篇文章作为参考: C File I/O and Binary File I/O

非常感谢任何帮助,并提前感谢。

编辑: 这是完整的代码 http://pastebin.com/3iMmGzfk

2 个答案:

答案 0 :(得分:1)

使用此代码,我得到相同的error: conflicting types for ‘file’。请注意文件在同一范围内的定义两次。

#include <stdio.h>

int main(void) {
    int file = 0;

    char *filename = "dictionary.txt";
    FILE *file;
    file = fopen(filename, "a+");

    return 0;
}

确保在同一范围内没有另一个名为file的变量可以解决问题。

例如,我没有使用此版本的编译器错误:

#include <stdio.h>

int main(void) {
    int file = 0;

    {
        char *filename = "dictionary.txt";
        FILE *file;
        file = fopen(filename, "a+");
    }
    return 0;
}

答案 1 :(得分:1)

您链接到的文章实际上使用fp作为FILE *变量名称,但如果您自己的代码没有在别处定义file,那么您可以直接在某个地方使用头文件或间接使用是定义名为file的东西。在不了解您的平台的情况下,很难说哪个头文件会定义file