是否需要<stdio.h>包括C中的FILE?</stdio.h>

时间:2011-04-30 12:21:10

标签: c file include syntax-error

我的c文件(sample.c)有一个头文件(sample.h)。当我在我的头文件中原型化一个函数时,如下所示。

return_type sample_fun (FILE *filePtr);

我收到编译错误,Syntax error: possible missing ')' or ','?当我包含stdio.h时,错误已解决。 stdio.h是否包含强制性?我的一些文件在没有包含的情况下运行良好。

我在AIX上使用gcc。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

有关详细信息,请参阅此问题:Forward declare FILE *