2015-01-11 23 views
-4

从昨天开始我已经在C语言中一个恼人的问题,你是我最后的希望......我不是新的C编程ERREUR日编译连接Ç

我已经做了一个项目,5个.c文件和他们的标题。 我.C的人正在使用的文件,所以在每一个功能,我有:

FILE* file = NULL; 
file = fopen("xxx", "x"); 

很显然,我包括sdtio和STDLIB .. 但用gcc我每次有这些错误的每个功能..

file_rw.c: In function ‘load_scramble’: 
file_rw.c:9:9: error: ‘file’ undeclared (first use in this function) 
FILE* file = NULL; 
    ^

帮助请! Thaks :)

+5

英语请............ – haccks

+0

在.c文件的每个功能我有第一个代码。我已经包含了sdtio.h和stdlib.h。但是我对每个函数都有下面的错误。我对C编程并不陌生...... – Dayan42

+0

整个问题(和标题)都需要使用英文,而不仅仅是您的评论。请编辑它,否则此问题将被社区删除。 – Zanon

回答

2

似乎是不可思议的,但一个可能性,我能想到的是有一些奇怪的宏替换FILE,别的东西,使这个简单的声明incorrent。您可以通过gcc-E标志查找预处理翻译单元的输出(有关详细信息,请参见man gcc)。

例如:

#include <stdio.h> 

#define FILE 

int main(void) 
{ 
    FILE* file = NULL; 

    return 0; 
} 

编译在gcc与以下错误:

prog.c: In function 'main': 
prog.c:6:8: error: 'file' undeclared (first use in this function) 
    FILE* file = NULL; 
     ^
+0

我明白你的意思,但我必须补充一点,我说的这些功能在另一个.c文件中,但是这个文件越来越大,我分成2个小孩。当功能更大时,我没有问题! – Dayan42

+0

SORRY,你说得对,我在头文件中创建了一个#ifndef文件#define文件,非常感谢! – Dayan42