BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Turbo C++ Version 1.0 Programmer's Guide
Автор ""
Размер 211728 Байт
Страница 11 из 30
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

 i = 3.0e3;    // double i в контексте и видима
       // int i в контексте, но скрыта
 ch = 'A';     // char ch в контексте и видима
      *)
       // double i вне контекста
      i += 1;       // int i видима и равна 4
    ...        // char ch все еще в контексте и видима
       // и равна 'A'
    *)
    ...        // int i и char ch вне контекста

     И снова,  специальные  правила  действуют  в  отношение
скрытых имен классов и имен компонентов классов: специальные
операции С++ позволяют доступ к  скрытымидентификаторам  при
определенных условиях (см. стр.103 оригинала).

       Продолжительность

     Продолжительность, близко  связаннаяс  классом  памяти,
определяет продолжительность  периода,  в  течение  которого
объявленным  идентификаторам  соответствуют распределенные в
памяти реальные физические объекты.  Такжеделается  различие
между  объектами  времени  компиляции  и времени выполнения.
Например,  переменным,  в  отличие  от  определяемых   типов
(typedefs) и типов, память непосредственно во время выполне-
ния не распределяется.  Существует три вида продолжительнос-
ти: статическая, локальная и динамическая.

 Статическая продолжительность (static)

     Объекты со статическойпродолжительностью жизни получают
распределение памяти сразу жепри начале выполнения  програм-
мы; такоераспределение памяти сохраняется до выхода из прог-
раммы. Объекты со статической продолжительностью обычно раз-
мещаются  в фиксированныхсегментах данных,  распределенных в
соответствии с используемой моделью памяти. Все функции, не-
зависимо от того,где они определены, являются объектами сос-
татической продолжительностью.  Также статическую  продолжи-
тельность  имеютвсе переменные сфайловым контекстом.  Прочим
переменным может быть задана  статическая продолжительность,
еслииспользовать  явные  спецификаторы  класса памяти static
или extern.

                           - 32 -

     При отсутствии явного инициализатора,  либо вС++  конс-
труктора,  объекты со статической продолжительностью инициа-
лизируются в ноль (или пустое значение).

     Статическую продолжительность не следует путать с  фай-
ловым или глобальным контекстом. Объектможетиметьстатическую
продолжительность и при этом локальный контекст.

 Локальная продолжительность (local)

     Объект с локальной продолжительностью всегда имеет  ло-
кальный контекст, поскольку он не существует вне своего объ-
емлющего блока. Обратное неверно: объект слокальным контекс-
том может иметь статическую продолжительность.

     Объектыс локальнойпродолжительностью    жизни,    иначе
называемые динамическими локальнымипеременными, менее надеж-
ны.  Они создаются в стеке (или в регистре) при входе в объ-
емлющий их блок или функцию.  При выходе программы из такого
блока или функции они уничтожаются. Объекты с локальной про-
должительностью должны быть инициализированы явно;в  против-
ном случае их исходное содержимое непредсказуемо.  Объекты с
локальной продолжительностью всегда должны  иметь  локальный
контекст  или контекст функции.При объявлении переменных ло-
кальной продолжительности  можно  использовать  спецификатор
класса памяти auto, однако он является избыточным, поскольку
auto для переменных,  объявленных в блоке,  всегда  является
умолчанием.

     При объявлении переменных (например,  int, char, float)
спецификатор класса памяти register такжеподразумевает auto,
однако  компилятору при этом передается запрос (или рекомен-
дация) о том,  что при возможности данный объект  желательно
разместить в регистре. Turbo C++можно установить таким обра-
зом,  чтобы он распределял регистрлокальной интегральной пе-
ременнойили  переменной типа указатель,  если какой-либо ре-
гистр свободен.  Если свободных регистров нет, то переменная
распределяется как auto,  или динамический локальный объект,
без выдачи предупреждения или генерации ошибки.

 Динамическая продолжительность (dynamic)

     Объекты с динамической продолжительностью жизни  созда-
ются и разрушаются конкретными вызовами функций при выполне-
нии программы.  Им распределяется памятьиз специального  ре-
зерва памяти, называемого кучей, при помощи либо стандартных
библиотечных функций,  какнапример malloc,  либо при  помощи
операции  С++ new.  Соответствующая отмена распределения вы-
полняется при помощи free или delete.

Единицы трансляции






Термин единица трансляции относится к файлу исходного кода вместе с включаемыми файлами, но безисходных строк, опущенных условными директивами препроцессора. Синтаксически единица трансляции определяется как последовательность внеш- них объявлений: единица-трансляции: внешнее-объявление единица-трансляции внешнее-объявление внешнее-объявление: определение-функции объявление - 33 - Слово external имеет в С несколько значений; в данном случае оно относится к объявлениям, находящимся вне ка- ких-либо функций, и которые, следовательно, имеют контекст файла. (Отдельным свойством является внешний тип компоновки; см.следующий раздел, "Компоновка".) Любое объявление, также резервирующее память для объекта или функции, называется оп- ределением (или объявлением определения). Более подробную информацию см. в разделе "Внешние объявления и определения" на стр.36 оригинала. Компоновка Выполняемая программа обычно создается компиляцией нес- кольких независимых единиц трансляции, а затем компоновкой получившихся объектных файлов с уже существующими библиоте- ками. Проблема возникает, когда один и тот же идентификатор объявлен в разных контекстах (например, в различных файлах), либо объявлен более одного раза в одном и том же контексте. Компоновка это процесс, который позволяетправильно связать- каждое вхождение идентификатора с одним конкретным объектом или функцией. Все идентификаторы имеют один из трех атрибу- товкомпоновки, тесно связанных с их контекстом: внешняя ком- поновка, внутренняя компоновка или отсутствие компоновки. Эти атрибуты определяются местоположением и форматом объяв- лений, а также явным (или неявным по умолчанию) использова- нием спецификатора класса памяти static или extern. Каждое вхождение конкретного идентификатора с типом компоновки external представляет тот же самый объект или функцию во всем множестве файлов и библиотек, составляющих программу. Каждое вхождение конкретного идентификатора с ти- пом компоновки internal представляет тот же самый объект или функцию только в пределах одного файла. Идентификаторы с ти- пом компоновки no (отсутствие) представляет уникальные эле- менты программы. Ниже приводятсяправила внешней (external) и внутренней (internal) компоновки: 1. Любой идентификатор объекта или файла, имеющий фай- ловый контекст, будет иметь внутренний тип компоновки, если его объявление содержит спецификатор класса памяти static. Для С, если один и тот же идентификатор в пределах од- ного файла появляется и с внутренним, и с внешним типом ком- поновки, то идентификатор будет иметь внутренний тип компо- новки. 2. Если объявление идентификатора объекта или функции содержит спецификатор класса памяти extern, то идентификатор имеет тот же тип компоновки, что и видимое объявление иден- тификатора с файловым контекстом. Если такого видимого объ- явления не имеется, то идентификатор будет иметь внешний тип компоновки. 3. Если функция объявлена без спецификатора класса па- мяти, то ее тип компоновки определяется, как если бы был ис- пользован спецификатор класса памяти extern. 4. Если идентификатор объекта с файловым контекстом объявлен без спецификатора класса памяти, то идентификатор имеет внешний тип компоновки. Следующие идентификаторы не имеют атрибута типа компо- новки: 1. Любой идентификатор, объявленный иначе, чем объект - 34 - или функция (например, идентификатор typedef). 2. Параметры функции. 3. Идентификаторы с контекстом блока в случае объектов, объявленных без спецификатора класса памяти extern. Синтаксис объявления Все шесть взаимосвязанных атрибута (класс памяти, тип, контекст, видимость,продолжительность и тип компоновки) мо- гут быть разными способами определены при помощи объявлений. Объявления могут быть объявлениями определения(их обыч- но просто называют объявлениями) и объявлениями ссылки (иногда называемыми неопределяющими объявлениями). Объявле- ние определения, как и следует из названия, выполняет две функции, объявления и определения; неопределяющие же объяв-


Страницы : 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.