declaration of an identifier (denoting an entity such as a type, a variable, a constant, or a function) for which the programmer has not yet given a complete definition
Предварительное объявление является таким типом объявления, при котором сборщик(компилятор) имеет возможность разрешить ссылки из различных частей программы. Предварительное объявление позволяет программисту ссылаться на объекты, о которых компилятор ещё не знает, но которые будут определены в процессе компиляции позже. В программировании предварительное объявление - это объявление идентификатора (типа, переменной или функции), для которого программист ещё не дал полного определения. Объявление идентификатора требуется компилятору для того, чтобы знать тип (размер) идентификатора, но не его значения (в случае переменных). void printThisInteger(int); В C/C++, приведённая строка означает предварительное объявление функции и является её прототипом. После обработки этого объявления, компилятор даёт возможность программисту ссылаться на сущность printThisInteger в остальной части программы. Определение функции должно быть описано где-то ещё (в том же или другом файле; задача линковщика - сопоставить ссылки на данную функцию в одном или нескольких объектных файлах с её единственным определением в другом): void printThisInteger(int x) { printf("%d ", x);} Переменные могут быть объявлены и не определены. Такие переменные в процессе компиляции инициализируются согласно правилам языка (неопределенным значением, нулём, NULL-указателем, ...). Переменные, имеющие определение в другом исходном/объектном файле, должны быть предварительно объявлены с ключевым словом extern: int foo; //foo могло быть определено где-то в этом файлеextern int bar; //bar должно быть определено в другом файле В Паскале и других виртовских языках программирования тот факт, что все сущности должны быть объявлены до первого использования - общее правило. В языке Си применяется то же правило, делая исключения для необъявленных функций и неполных типов. Так, в Си есть возможность реализации пары взаимно-рекурсивных функций: int first(int x) { if (x == 0) return 1; return second(x-1); //опережающее обращение к second}int second(int x) { if (x == 0) return 0; return first(x-1);} В Паскале аналогичная реализация требует предварительного объявления функции second до первого её использования. Без предварительного объявления компилятор выдаст сообщение об ошибке, означающее, что идентификатор second использован, не будучи объявленным.
Abstract from DBpedia / Wikipedia · CC BY-SA
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).