Cтраница 2
Есть несколько проблем, относящихся к локальным идентификаторам и их области действия, которые необходимо рассмотреть. Какие правила существуют для области действия идентификаторов при вложенных процедурах. Что происходит, если один и тот же идентификатор объявлен в нескольких частях программы. Обратите внимание, что мы перешли от рассмотрения переменных к идентификаторам, поскольку эта тема шире, чем просто вопрос о переменных, и те же самые правила относительно области действия приложимы ко всем идентификаторам. [16]
В этом разделе обсуждаются четыре спецификации класса памяти и два класса памяти. В разделе 3.11 обсуждается область действия идентификаторов. [17]
Областью действия идентификатора является та часть программы, в которой возможно обращение к нему. Например, когда мы объявляем в некотором блоке локальную переменную, к ней можно обратиться только из этого блока или из блоков, вложенных в данный блок. Область действия идентификатора делится на четыре вида: область действия функции, область действия файла, область действия блока и область действия прототипа функции. [18]
Мы используем идентификатор в Модуле-2 для именования констант, переменных, процедур, модулей и типов. Областью действия идентификатора является часть программы, где он может быть использован. Мы часто говорим, что идентификатор является видимым в некоторой части программы, если он может быть использован там. Две структуры в Модуле-2, имеющие глубокое влияние на область действия идентификаторов, - это модули и процедуры. Обсуждение области действия модуля откладывается до гл. [19]
Например, когда мы объявляем локальную переменную в блоке, на нее можно ссылаться только в этом блоке или в блоке, вложенном в этот блок. Существуют четыре области действия идентификатора - область действия функция, область действия файл, область действия блок и область действия прототип функции. [20]
Управление последовательностью выполнения процедурных блоков осуществляется главной процедурой. Обычный блок ( блок BEGIN) и процедурный блок объединяют части алгоритма в одно целое. Эти блоки определяют область действия идентификаторов, описанных в них, и управляют резервированием основной памяти. [21]
Каждой переменной в программе на языке Модула-2 должен быть явно присвоен допустимый тип данных. В этой главе помимо введения наиболее часто используемых типов данных мы покажем, как эти типы присваиваются переменным. Наконец, в этой главе будут введены правила области действия идентификаторов. [22]
Язык С поддерживает четыре класса памяти, обозначаемые спецификаторами класса памяти: auto, register, extern и static. Класс памяти идентификатора помогает определить его период хранения, область действия и тип компоновки. Период хранения идентификатора - это время, в течение которого данный идентификатор существует в памяти. Некоторые идентификаторы существуют короткое время, некоторые неоднократно создаются и разрушаются, другие существуют в течение всего времени выполнения программы. Область действия идентификатора характеризует возможность обращения к нему из различных частей программы. Некоторые идентификаторы доступны во всей программе, другие - только в отдельных ее частях. Эта характеристика показывает, известен ли идентификатор только в текущем исходном файле или в любом исходном файле с соответствующими объявлениями. В этом разделе рассматриваются четыре класса памяти и период хранения. В разделе 5.12 обсуждается область действия идентификаторов. В главе 14 обсуждается тип компоновки идентификатора и программирование с несколькими исходными файлами. [23]
Мы используем идентификатор в Модуле-2 для именования констант, переменных, процедур, модулей и типов. Областью действия идентификатора является часть программы, где он может быть использован. Мы часто говорим, что идентификатор является видимым в некоторой части программы, если он может быть использован там. Две структуры в Модуле-2, имеющие глубокое влияние на область действия идентификаторов, - это модули и процедуры. Обсуждение области действия модуля откладывается до гл. [24]
В этой главе введены наиболее часто используемые типы данных ( и связанные с ними операторы), определенные в языке Модула-2. Этих типов данных достаточно для большинства обычных задач программирования. Типы данных, более сложные, чем те простые, которые введены в этой главе, а также типы, определяемые пользователем, будут рассмотрены в гл. Помимо определения типов данных, были даны правила объявления констант и переменных. Наконец, были объяснены правила, касающиеся области действия идентификаторов в программе. [25]
Идентификаторы, объявленные внутри блока, имеют область действия блока. Область действия блока заканчивается завершающей правой фигурной скобкой () блока. Локальные переменные, объявленные в начале функции, имеют область действия блока, так же как и параметры функции, которые рассматриваются как ее локальные переменные. Любой блок может содержать объявления переменных. Когда блоки вложены, а идентификатор во внешнем блоке имеет то же самое имя, что и идентификатор во внутреннем блоке, идентификатор во внешнем блоке скрывается, пока внутренний блок не завершит работу. Это означает, что пока выполняется внутренний блок, он видит значение собственного локального идентификатора, а не значение идентификатора с тем же именем, находящегося в объемлющем блоке. Локальные переменные, объявленные как static, имеют область действия блока несмотря на то, что существуют с момента начала выполнения программы. Таким образом, период хранения не влияет на область действия идентификатора. [26]
Язык С поддерживает четыре класса памяти, обозначаемые спецификаторами класса памяти: auto, register, extern и static. Класс памяти идентификатора помогает определить его период хранения, область действия и тип компоновки. Период хранения идентификатора - это время, в течение которого данный идентификатор существует в памяти. Некоторые идентификаторы существуют короткое время, некоторые неоднократно создаются и разрушаются, другие существуют в течение всего времени выполнения программы. Область действия идентификатора характеризует возможность обращения к нему из различных частей программы. Некоторые идентификаторы доступны во всей программе, другие - только в отдельных ее частях. Эта характеристика показывает, известен ли идентификатор только в текущем исходном файле или в любом исходном файле с соответствующими объявлениями. В этом разделе рассматриваются четыре класса памяти и период хранения. В разделе 5.12 обсуждается область действия идентификаторов. В главе 14 обсуждается тип компоновки идентификатора и программирование с несколькими исходными файлами. [27]