2011-04-30 60 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 *

相關問題