Требуется ли <stdio.h> для файла FILE в C? - PullRequest
0 голосов
/ 30 апреля 2011

У меня есть файл заголовка (sample.h) для моего файла c (sample.c).Когда я создаю прототип функции в своем заголовочном файле, как показано ниже.

return_type sample_fun (FILE *filePtr);

Я получаю сообщение об ошибке компиляции: Syntax error: possible missing ')' or ','? Когда я включаю stdio.h, ошибка устраняется.Включен ли stdio.h обязательно?Некоторые из моих файлов хорошо работают без include.

Я использую gcc в AIX.

Ответы [ 2 ]

5 голосов
/ 30 апреля 2011

Да, тип FILE определен в stdio.h;если вы упомянули об этом, вы должны включить этот файл.

2 голосов
/ 30 апреля 2011

Да, это так.FILE является typedef ed из struct iobuf на большинстве платформ.Это требует наличия полного определения struct iobuf, даже если все интерфейсы используют FILE *, а для типов указателей обычно не требуются полные определения перед их использованием (ограничение C).

См. Этот вопросдля получения дополнительной информации: Форвард объявить ФАЙЛ *

...