Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 333

Резюмируя обсуждение, можно сказать, что константные параметры есть всего лишь иное прагматическое оформление входных параметров.

TURBO Pascal версии 7.0 и ObjectPascalDelphiпредлагают еще один способ параметризации, который может добиваться некоторых эффектов, аналогичных механизму передачи параметров по именам. Речь идет о так называемых нетипизированных параметрах. Синтаксически они задаются с помощью спецификации var, const или out имени формального параметра, за которой не указывается тип параметра: procedureChange_any(var х); procedureTakeAnything(const С); procedureGiveSomething(outRes);

Вместо xили Resпри вызове процедуры может подставляться перемен­ная любого типа, вместо С — произвольное выражение.

На самом деле нетипизированные параметры являются естественным обобщением средств оперирования с нетипизированными указателями — другой возможности языка, расширяющей Pascal, — на область параметри­зации. Как уже отмечалось, механизм параметровпеременных есть просто синтаксически оформленный механизм ссылочной параметризации, и коль скоро язык допускает работу с указателями, ссылающимися на объекты про­извольных типов, эта возможность должна быть представлена и в средствах параметризации. Здесь проявилась ссылочная суть задания параметровпе­ременных, которая затушевывается синтаксически.

Содержательная работа с нетипизированными параметрами, как, впро­чем, и с любыми нетипизированными указателями, требует, чтобы на уровне их использования структура памяти, на которую указывает формальный па­раметр (или нетипизированный указатель), была както определена. Это предпочтительнее всего сделать путем явного приведения типов: если в про­грамме описан какойлибо тип Т (в процедуре среди локальных ее описаний или в другом доступном контексте), то для приведенного примера исполь­зование конструкции

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама