Я только начал изучать C. Но первая программа в книге, которую я имею в виду, порождает ошибку, которая «printf не была объявлена в этой области»
Я набираю код точно так, как он указан в книге. Тем не менее возникает ошибка.
Компилятор не нашел объявления для printf
. Вот почему он показывает ошибку компиляции.
Правильная декларация (ISO / IEC 9899: 1999) printf
:
int printf(const char * restrictformat, ... );
Вы можете либо объявить функцию, как указано выше, перед ее вызовом, либо включить header file
содержащий объявление этой функции. Но было бы проще и безопаснее просто включать заголовочный файл, содержащий объявление вашей функции ( #include
для printf
).
Если вы хотите узнать, почему вам нужно предоставить декларацию функции перед ее вызовом, вы можете взглянуть на этот вопрос . Объяснение приведено ниже:
Язык программирования C был разработан так, чтобы компилятор мог быть реализован как однопроходный компилятор. В таком компиляторе каждая фаза компиляции выполняется только один раз. В таком компиляторе вы не можете ссылаться на сущность, которая определена позже в исходном файле.
Более того, в C компилятор интерпретирует только единый блок компиляции (как правило, файл .c и все входящие в него файлы .h) за раз. Таким образом, вам нужен механизм для ссылки на функцию, определенную в другом модуле компиляции. Все идентификаторы в C должны быть объявлены до их использования. Это справедливо и для функций, и для переменных. Для функций декларация должна быть до первого вызова функции. Полное объявление включает тип возврата, количество и тип аргументов. Это также называется прототипом функции.
Вы также можете определить функцию перед ее вызовом в одном модуле компиляции. Или вы можете просто объявить его, прежде чем называть его. Лучше идея (не всегда) включать заголовочный файл, который содержит объявление функции.
и подумайте о покупке новой книги. Автор должен был упомянуть о включении заголовка.
Книга устарела.
добавлять
#include
к вашей программе. Он предоставляет декларацию printf
и многие другие функции. Для получения полного списка функций, определенных в файле, просмотрите его документацию .
printf()
объявляется в файле заголовка stdio.h
.
Добавьте это как первую строку вашей программы:
#include
Добавить
#include
в начале .c файла. Это заголовочный файл, который должен быть включен для каждой программы, которую вы пишете. Файл заголовка stdio.h содержит стандартное объявление функции ввода / вывода (например, printf и scanf)
Вы должны включить заголовочный файл: “stdio.h”