2011-04-30 62 views
0

我有一个头文件(sample.h)为我的c文件(sample.c)。当我在我的头文件中创建一个函数如下。是否包含FILE在C中需要的<stdio.h>?

return_type sample_fun (FILE *filePtr); 

我得到一个编译错误说,Syntax error: possible missing ')' or ','?当我包括stdio.h中的错误得到解决。 stdio.h包含强制性的吗?我的一些文件在没有包含的情况下运行良好。

我在AIX上使用gcc。

+3

'FILE'类型在'stdio.h'中定义。 – ruslik 2011-04-30 12:23:31

+2

没有它,哪些文件可以正常工作?这些文件可能包含一些其他包含stdio.h的头文件。 – 2011-04-30 12:29:53

+0

@是的,他们可能会包含很多头文件。 – San 2011-05-02 09:51:24

回答

5

是的,类型FILE定义在stdio.h;如果你提到它,那么你必须包含该文件。

2

是的。 FILEtypedef在大多数平台上由struct iobuf编辑。这要求存在struct iobuf的完整定义,即使所有接口都使用FILE *,并且指针类型在使用前通常不需要完整的定义(C限制)。

查看此问题以获取更多信息:Forward declare FILE *

相关问题