Глава 9. Описатели и спецификаторы данных __ 799

умолчанию являются открытыми (public — по терминологии C++; см. главу 14 "Базовые концепции классов", где указаны другие спецификаторы доступа, access specifiers). Это означает, что переменные — экземпляры структур позволяют всем пользователям непосредственно обращаться ко всем своим данным-членам (для классов C++ это не так).

Таким образом, используя переменную ffbik описанную как

struct ffblk fileBlock;

можно напрямую скопировать имя файла в элемент ff_name, например, так:

ttinclude <string.h>

//...

strcpy( fileBlock.ff_name, "COMMAND.СОМ");

Структуры до сих пор вполне успешно используются для группировки взаимосвязанных данных в одно целое.

Как вы еще увидите в разделе, посвященном объединениям (union), структуры можно использовать для неявного преобразования данных, что в определенных обстоятельствах может сэкономить вам массу труда.

static

Значение ключевого слова static зависит от контекста. Хотя общий смысл этого спецификатора соответствует глобальной компоновке, конкретные особенности его интерпретации зависят от контекста, в котором он появляется. И если первый случай его применения достаточно прост для понимания, то второй предполагает хорошее знакомство с объектно-ориентированной философией. Каждому из этих двух случаев посвящен собственный раздел. Настоятельно рекомендуем вам перед чтением второго раздела ознакомиться с главой 14 "Базовые концепции классов".

Продление времени жизни переменной

Обычно ключевое слово static используется для продления времени жизни переменной за пределы ее области видимости. Чтобы это было понятным, необходимо иметь представление об области видимости и о том, как она связана с жизненным циклом переменной.

Область видимости (scope) переменной — это тот фрагмент программы, на протяжении которого существует выделенный ей блок памяти. Чаще всего это текст между фигурными скобками (}, отмечающими, к примеру, границы функции. Таким образом, область видимости переменных, определенных внутри функций, ограничена функцией. Время жизни (lifetime) переменной определяется ее областью видимости.