我有一個頭文件(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。
我有一個頭文件(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。
是的,類型FILE
定義在stdio.h
;如果你提到它,那麼你必須包含該文件。
是的。 FILE
是typedef
在大多數平臺上由struct iobuf
編輯。這要求存在struct iobuf
的完整定義,即使所有接口都使用FILE *
,並且指針類型在使用前通常不需要完整的定義(C限制)。
查看此問題以獲取更多信息:Forward declare FILE *
'FILE'類型在'stdio.h'中定義。 – ruslik 2011-04-30 12:23:31
沒有它,哪些文件可以正常工作?這些文件可能包含一些其他包含stdio.h的頭文件。 – 2011-04-30 12:29:53
@是的,他們可能會包含很多頭文件。 – San 2011-05-02 09:51:24