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




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

  Спецификаторы класса памяти

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

    auto     register  typedef
    extern   static

                           - 46 -

 Использование спецификатора класса памяти auto

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

 Использование спецификатора класса памяти extern

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

 Использование спецификатора класса памяти register

     Спецификатор класса памяти  registerдопустим  только  в
объявлениях  локальных  переменных и параметров функций.  Он
эквивалентен класса auto,  за исключением того, что компиля-
тору  в  данном случае делается запрос о размещении при воз-
можности данной переменной в регистре. Распределение для пе-
ременной   регистра   может   значительно  уменьшить  размер
программы и увеличить скорость ее выполнения во многих  слу-
чаях.  Однако, поскольку TurboC++ итак предпринимает мерыдля
возможного размещения переменных в регистре, необходимость в
явном задании ключевого слова register возникает редко.

     Turbo C++  позволяет вам выбрать опции размещения пере-
менных в регистрах в диалоговом поле Options \!  Compiler \!
Optimization.  При  выборе  опции Automatic TurboC++ сделает
попытку распределить регистры даже  еслиспецификаторы класса
памяти register не задавались.

 Использование спецификатора класса памяти static

     Спецификатор класса  памяти static может использоваться
в объявлениях функций и переменных с контекстом файла и  ло-
кальным контекстом для обозначения внутреннего типакомпонов-
ки.  Static также указывает, что переменная должна иметьста-
тическую  продолжительность  существования.  При  отсутствии
конструкторовили явныхинициализаторов статические переменные
инициализируются 0 или null.

     В С++ компоненты класса,статические данные, имеет то же
значение длявсех вхождений класса. Члены класса, статические
функции, не зависят от других вхождений класса.

 Использование спецификатора класса памяти typedef

     Ключевое слово  typedef означает,  что вы не объявляете
объект,  а  определяете  спецификатор  нового  типа  данных.
typedef  включается  в  качестве спецификатора класса памяти
вследствие синтаксических, а не функциональных аналогий.

    static long int biggy;
    typedef long int BIGGY;

     Первое объявление  создает  32-битовый объект типа long
int,  со статической продолжительностью существования и име-
нем  biggy.  Второе  объявление  устанавливает идентификатор
BIGGY в качестве спецификаторановоготипа,  не  создавая  при

                           - 47 -
этомкакого-либо объекта времени выполнения.  BIGGY можно ис-
пользовать в последующих объявлениях,там,  где допустимо за-
даватьспецификатор типа. Например,

    extern BIGGY salary;

 имеет тот же эффект, что и

    extern long int salary;

     Хотя данный  простой  пример  может быть равным образом
реализован при помощи #define BIGGY long int,  в более слож-
ных  случаях  typedef позволяет добиться большего,  нежели с
помощью текстовых подстановок.

 Важное замечание!

     typedef не создает новых  типов  данных;  это  ключевое





слово просто создает полезные мнемонические синонимы, или алиасы,для существующих типов. Это особенно полезно для уп- рощения сложных объявлений: typedef double (*PFD)(); PFD array-pfd[10]; /* array_pfd это массив из 10 указателей на функции, возвращающие значения типа double */ Нельзя использовать идентификаторы typedef со специфи- каторами других типов: unsigned BIGGY pay; /* НЕДОПУСТИМО */ Модификаторы Помимо ключевых слов спецификатора класса памяти, объ- явление можетиспользовать конкретные модификаторы, предназначенные для изменения некоторых аспектов распределе- ния памяти идентификатора/ объекта. В следующей таблице све- дены модификаторы, имеющиеся в Turbo C++. Модификаторы Turbo C++ Таблица 1.16 ----------------------------------------------------------- Модификатор Используется с Использование ----------------------------------------------------------- const Только переменными Предотвращает изменения объекта volatile Только переменными Предотвращает распределение регистров и некоторые виды оптимизации. Предупреждает компи- лятор о том, что объект при вычислении может получить какие- либо изменения извне. В С++ const и volatile расширены и включают классы и функции. Расширения Turbo C++ cdecl Функции Устанавливает соглашения С пере- дачи аргументов cdecl Переменные Устанавливает учет регистра иден- тификатора и ведущие знаки подчер- кивания pascal Функции Устанавливает соглашения пере- дачи аргументов Паскаля pascal Переменные отменяет учет регистра идентифи- - 48 - катора и ведущие знаки подчерки- вания interrupt Функции Функция компилируется с дополни- тельным кодом управления реги- стром, необходимыми при написании обработчиков прерываний near, Переменные Переопределяет умолчание типа far, указатели указателя, задаваемое текущей huge моделью памяти _cs, Переменные Указатели сегмента; _ds, указатели см. стр.199 оригинала _es, _seg, _ss near, Функции Переопределяет умолчание типа far, функции, задаваемое текущей huge моделью памяти near, Переменные Определяет размещение объекта в far, памяти _export Функции Только OS/2. Turbo C++ это игнорирует _loadds Функции Устанавливает регистр DS на текущий сегмент данных _saveregs Функции Предохраняет все значения регис- тров (кроме значений возврата) во время выполнения функции ----------------------------------------------------------- Модификатор const Модификатор const предотвращает любые присваивания дан- ному объекту, а также прочие побочные эффекты, такие как ин- кремент или декремент объекта. Указатель const неможет быть модифицирован, хотя сам объект, на который он указывает, мо- жет. Рассмотрим следующие примеры: const float pi= 3.1415926; const maxint = 32767; char *const str= "Hello, world!"; // указатель константа char const *str2= "Hello, world!"; // указатель на константу Использование одного только модификатораconst эквива- лентно const int.


Страницы : 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
Форумы политика, лучшие анекдоты
знакомства.