Читаем Программирование для карманных компьютеров полностью

Если инициализируется только часть элементов перечисления, то те элементы перечисления, которые указаны после инициализированных, будут получать возрастающие значения, отсчитываемые от того значения, которое они получили при инициализации. В следующем фрагменте элемент STOP будет инициализирован значением 21.

enum times{SAVE=10,SLEEP=20,STOP};

Области видимости и имена

Объявление вводит имя в область видимости. Это значит, что имя может использоваться только в определенной части текста программы, и, где именно будет использоваться объявленное имя, зависит от того, в каком месте программы оно было объявлено.

Для имени, объявленного в теле функции ( локальное имя), область видимости начинается с места объявления и заканчивается там, где заканчивается блок, внутри которого было объявлено имя. Блоком считается фрагмент кода, заключенный в фигурные скобки.

Имя называется глобальным, если оно объявлено вне любой функции или класса. Область видимости глобального имени простирается от места объявления до конца файла, содержащего объявление. Внешнее по отношению к текущему блоку имя, как глобальное, так и локальное, может быть перекрыто (то есть подменено) объявлением этого же имени внутри текущего блока. В этом случае в памяти образуется два или более разных объектов с одним и тем же именем. То есть имя внутри блока может быть замещено и будет ссылаться на другую область памяти. При выходе из блока имя восстанавливает свое значение. К замещенному глобальному имени можно обратиться при помощи оператора::. К скрытому локальному имени обратиться невозможно. Этот механизм иллюстрируется в упражнении.

Упражнение 4.1 (продолжение)

19. Добавить в программу код, приведенный в листинге 4.9. Нужно при этом объявить соответствующую функцию и добавить еще одну ветвь case.

Листинг 4.9

// Блок 16

void f4(){

//В начале файла объявлена глобальная переменная mm, указывающая на массив

//типа char, то есть на массив символов, то есть на строку. Устанавливая

//первым элементом массива 0, мы показываем, что это строка пустая. Затем,

//при помощи функции strcat, мы добавляем к этой строке строку Hello, Global

//Word! с символом переноса на другую строку \n.

mm[0] = \0;

strcat(mm, «Hello, Global Word! \n»);

//Снова объявляем переменную mm, чем скрываем имя глобальной переменной mm.

//Теперь обращаясь к mm, мы обращаемся к локальному имени, указывающему на

//другую область памяти. В эту другую область мы записываем строку Hello,

//Local Word!

char mm[256];

mm[0] = \0;

strcat(mm, «Hello, Local Word! \n»);

//К строке из локальной переменной mm, мы дописываем строку из глобальной

//переменной mm, обращаясь к глобальной переменной при помощи оператора

//разрешения области видимости::

strcat(mm,mm);

mbstowcs(mstr, mm, 256);

szStr = mstr;

}

Комментарии в тексте поясняют действие кода. После запуска программы нужно нажать клавишу 4. На экран будет выведено следующее сообщение:

Hello, Local Word! Hello, Global Word!

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных