从昨天开始,我在C语言中遇到了一个恼人的问题,你是我最后的希望......我不是C编程新手
我制作了一个包含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;
^
请帮忙! 多克斯:)
答案 0 :(得分:2)
这似乎不太可能,但我能想到的一种可能性是,有一些奇怪的宏用其他东西取代FILE
,这使得这个简单的声明变得无用。您可以通过带有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;
^