【问题标题】:Is <stdio.h> include needed for FILE in C?<stdio.h> 是否需要 C 中的 FILE 包含?
【发布时间】:2011-08-16 01:11:33
【问题描述】:

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

return_type sample_fun (FILE *filePtr);

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

我在 AIX 上使用 gcc。

【问题讨论】:

  • FILE 类型在stdio.h 中定义。
  • 没有它哪些文件可以正常工作?可能,这些文件包括一些其他头文件,其中包括 stdio.h。
  • @Will 是的,它们可能包含很多头文件。

标签: c file include syntax-error


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多