Операционная система UNIX. Руководство программиста

     

Внутренние блоки


В языке C блок определяется как составной оператор, заключенный в фигурные скобки, { и }. Внутренний блок определяется как блок, находящийся внутри функции. Сама функция также является блоком.

Если в некотором внутреннем блоке определены локальные имена, то в таблицу имен, непосредственно перед элементом для первого такого имени, будет помещен элемент для специального имени .bb. Равным образом, специальное имя .eb помещается сразу после элемента для последнего в этом блоке локального имени. Пример такой последовательности изображен изображен в следующей таблице:

.bb
Имена, локальные для этого блока
.eb

Поскольку внутренние блоки могут быть вложенными, пары .bb и .eb и соответствующие им элементы таблицы имен также могут быть вложенными. Пусть исходный текст выглядит так:

{ /* Блок 1 */ int i; char c; . . . { /* Блок 2 */ long a; . . . { /* Блок 3 */ int x; . . . } /* блок 3 */ . . . } /* блок 2 */ . . . { /* Блок 4 */ long i; . . . } /* блок 4 */ . . . } /* блок 1 */

Структура соответствующего фрагмента таблицы имен показана ниже:



. . .
.bb для блока 1
i
c
.bb для блока 2
a
.bb для блока 3
x
.eb для блока 3
.eb для блока 2
.bb для блока 4
i
.eb для блока 4
.eb для блока 1
. . .



Содержание раздела