Помощь - Поиск - Пользователи - Календарь
Полная версия: создание процедуры(функции) типа Inc(n)/inc(n,2)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DFooz
можно ли как-нибудь создать такую проедуру, чтобы в нее можно было отсылать несколько параметров, а в другом случае, напр., только один, а другие она по умолчанию возьмёт?
volvo
Этот вопрос уже поднимался. Нет, нельзя (так, как ты это подразумеваешь)... В полной мере это доступно только в 32-битных компиляторах...

В принципе, есть возможность сделать то, что ты хочешь (чтобы можно было вызывать одну и ту же процедуру/функцию, но с разным числом параметров), но вот способ тебе явно не понравится...
DFooz
а как тогда это осуществили в Паскале?

Цитата
В принципе, есть возможность сделать то, что ты хочешь (чтобы можно было вызывать одну и ту же процедуру/функцию, но с разным числом параметров), но вот способ тебе явно не понравится...


в целях общего развития напишите пожалуйста
volvo
Цитата(DFooz @ 13.06.2006 13:05) *
а как тогда это осуществили в Паскале?
Все процедуры типа Inc/Dec и Read(Ln)/Write(Ln) на самом деле являются макросами...

Цитата
в целях общего развития напишите пожалуйста
Можно попробовать описать эти 2 разные процедуры в разных модулях (в одном, например, с одним параметром, во втором - с двумя), и подключить оба этих модуля к основной программе.
DFooz
Цитата(volvo @ 13.06.2006 14:58) *

Все процедуры типа Inc/Dec и Read(Ln)/Write(Ln) на самом деле являются макросами...

т.е. компилятор считывает, что в скобках, а потом анализирует, 2 там переменных или одна и чего-то запускает? или я фигню какю-то написал...
volvo
Цитата
компилятор считывает, что в скобках, а потом анализирует, 2 там переменных или одна и чего-то запускает?
Там (вторым параметром) может быть не только переменная, но и константа и выражение...

Но в целом ты прав, именно так и происходит... Только вот имена таких процедур/функций известны компилятору, и ТОЛЬКО с ними производится такая проверка. С другими (подпрограммами пользователя) - производится проверка на соответствие заголовку, и если точного соответствия не найдено - ошибка...
DFooz
идею понял, спасибо.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.