Forward паскаль
Автор Ёергей Яшановский задал вопрос в разделе Другие языки и технологии
Forward в Pascal и других языках и получил лучший ответ
Ответ от Ўрий Копнин[гуру]
Паскаль однопроходный компилятор, поэтому,
procedure P1;
begin
P2(10); //Ошибка, в момент компиляции P1, функция P2 ещё не скомпилирована и параметры её вызова не известны как и её имя, компилятор в момент компиляции P1 ничего не знает о P2, т. к. она ниже.
end;
procedure P2(I: Integer);
begin
end;
Ключевое слово forward переводится как опережающий, что следует понимать как опережающее объявление функции или процедуры, что подразумевает, что компилятор должен только проанализировать как вызывается эта функция и занести её имя в таблицу имен, а реализация этой функции с телом begin end; будет ниже.
forward procedure P2(I: Integer); //Объявление процедуры без begin end;
procedure P1;
begin
P2(10); //Теперь ошибки нет, в момент компиляции P1, о процедуре P2 уже всё известно.
end;
//Реализация P2
procedure P2(I: Integer);
begin
end;
А вообще, у Вас там мешанина какая-то не проще ли было пример привести? Моя твоя не понимай...
Юрий Копнин
Мыслитель
(5826)
Приведите пример уже, кто кого вызвал. В момент компиляции ни кто ни кого ни куда не вызывает...
В скриптовых языках допустимо польностью считать и только потом компилировать. Паскаль серьезный компилятор, он останавливается на первой же ошибке, а то что уже скомпилировано - при повторе пропускается. Ты наверное не видел проектов тысяч на сто строк кода, ты бы при каждой компиляции ждал минут 5 чтобы продолжить, а так по факту он компилирует только измененные модули, но есть и кнопка "скомпилировать все заново", на случай если кажется что что-то не так работает
Как вызвать процедуру из другой процедуры в Паскале?
Вызываемая процедура должна описываться ВЫШЕ вызывающей, а у тебя
подробнее...
Принадлежит ли слово языку?
function tform1.FirstWord(Fword:string):boolean;
var
cep:string;
i:integer;
begin
подробнее...
Напишите плиз как можно больше языков программирования
Ада • АПЛ • Ассемблер • ActionScript • ABAP/4 • AutoIt • AWK • BASIC • C • Кобол • C++ • C# •
подробнее...
вопрос к тем,кто помнит фильм"греческая смоковница"!какая актриса играла главную роль?что с ней потом стало?она жива?
Бетти Вергес
РОЛИ В КИНО
1979Граф Дракула в Верхней Баварии | Dracula blow his
подробнее...
Помогите пожалуйста!
1 - Работать то он будет, только вот добиться от него чего нибудь будет невозможно, поскольку
подробнее...
Кто из знаменитостей родился 14 июля?:)
1743 — Гавриил Романович Державин (ум. 1816), русский поэт.
1793 — Джордж Грин (George Green)
подробнее...
Скажите, а что язык программирования 1С намного легче других языков программирования? Почему все так плюются на 1С?
Это высокоуровневый язык, ориентированный на бухгалтерские задачи. А вот если писать на нем
подробнее...
языки программирования
Классы языков программирования
* Функциональные
* Императивные
*
подробнее...
Какие языки программирования существуют?
Список языков программирования
Неклассифицированные языки
ABAP/4
Awk
подробнее...
Посоветуйте ужастик по типу пилы или техасской резни бензопилой
Хостел
Дом восковых фигур
подробнее...