Главная » Просмотр файлов » Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004

Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 26

Файл №1160791 Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004) 26 страницаБ. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791) страница 262019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 26)

На многих машинах объем памяти, время доступа и скорость вычисления существенно зависит от выбора типа. Если вы знаете архитектуру машины, как правило, несложно выбрать подходящий целый тип для конкретной переменной, Гораздо сложнее написзть реально переносимый код. Размеры объектов в С++ выражаются в единицах размера ейаг. Таким образом, размер ейаг по определению равен !. Размер объекта илп типа можно получить с помощью оператора з!геоГЯ 6.2).

По поводу размеров фундаментальных типов гарантируется следующее: ! — = гцгео!" )еппг) < еГгео! )Яоп) < е!геоЯпй < е!геоЯопй) ! < аггее/)йао!) < е!геоЯопд) еггео!)сйпг) <спгеп!)шеПпг !) < еГгео!)!опт) еГгео!')йоай < агеоДе)опйе) < вгеоЯопд попйе) пгео" у«)п — пгеодегдпе~)я = ангес!)ппеГдпед Ф) где Лг может быть слиг, због! 2лй !л! или !огш' !лп Кроме того гарантируется, что для представления сйаг используется по меньшей мере 8 бит, для представления ейог!— по меньшей мере 16 бпт и для!олп' — по меньшей мере 32 бита. Переменная типа епаг может хранить .любой символ пз мапшнного набора символов.

Приведем графическое представление некоторого набора фундаментальных типов и строки: Глава 4. Типы и объявления 114 '('аз, Д~ ~756 ~ ~~ооооооо2 сЬаг зЬок 1пс 1вт'. с)опЬ1е: сЬаг114): бс1 Не!!о, чгог16110 оп! гпа!п ',1 ( в!й,.сои! « "наибольшее число с плавающей гпочкой == «в!йспитег!с йтнв тах 0«",тип сбагзнаковый ==" «и!й:.витек!с 1!т!!вшв в!иней <' 'о и', Фундаментальные типы можно свободно смешивать в операциях присваивания и в выражениях. Там где это возможно, значения преобразовываются без потери информации Я В.б). Если значение и может быть точно представлено в переменной типа Т, преобразование и в Тою ведет к потере информации, и проблем не возникает. Лучше избегать преобразований типов, которые приводят к потере инфорлсации Я В,6.2.6). Для того чтобы довести до конца большой проект и в особенное~и для того, чтобы понимать реальный код, написанный другими, необходимо знать правила неявных преобразований.

Однако для чтения следующих глав этого не требуется. 4.7. Тип чоЫ Синтаксически тип иоЫявчяется фундаментальным типом, Однако, его можно использовать только как часть более сложного типа, так как объектов типа иоЫ не существует. !тот тип используется либо для указания па то, что функция не возвращает значения, .поо в качестве базового типа для указателей на объекты неизвестного типа. Например: ио!йх,,Ч ошибка: не суи1ествует объектов типа иоос! ио!йД,,ГоГфунко1гоя(не возвращает значение (Л" Е1 иогй'ри, у! укшзагогель на обьект ненвлсо" н,штина 1б б Ь! При данном масштабе (0.2 дюйма на байт), мегабайт памяти растянется на три мили (пять километров).

Предполагается, что в конкретной реализации размер тица айаг будет выбран наиболее подходящим для хранения и манипулирования символами на данном компьютере; обычно байта (8 бит) достаточно. 1!одобным же образом размер типа !п1 будет выбран наиболее подходящим для хранения целых чисел и выполнения операций над ними на данном компьютере; обычно это 4-байтное слово (32 бита). Неразумно предполагать что-либо кроме этого. Например, есть машины с 32-битным типом сйаг Если возникнет необходимость, значения, зависящие от конкретной реализапии, можно получить нз <1!т!!з> Я 22.2). Например: №тс1ийе <1гтпл> №!пс(иде <!овггеат 115 4.8.

Перечисления При объявлении функцни вы должны указать тип возвращаемого значения. Логично предположить, что для указания того, что функция не возвращает значение, нужно просто опусти~ь тип. Это, однако, сделало бы синтаксис менее единообразным (см. приложение !т) н противоречило бы правилам языка С. Как следствие, в качестве < псевдотипа возвращаемого результата» используется тип ооЫ, указывающий на отсутствие возвращаемого значения.

4.8. Перечисления Тип епит (перечисление) задает набор значений, определяемый пользователем. После своего определения перечисление используется почти так же, как и целые типы. В качестве элементов перечисления можно определить имснованные целые константы. Например: спит ( АБМ, АЮТО, В((ЕАК); определяет три целые константы, называемые элементами перечисления, и присваивает пм значения. По умолчанию, элементам перечисления прнсванваются значения начиная с нуля; значение для каждого следующего элемента увеличивается на единицу. Таким образом.

АЗМ-=О, А(!ТО==! и ВИЕАК==2. Перечислению можно присвоить пмя. Например: спит Ьеуитгд(АБМ, АСТО, ВРЕАК), Каждое пере шсление является отдельным типом. Типом элемента перечисления является само перечисление, Например, АРТО имеет тип йеуюогд. Объявление переменной типа йеувоЫ, а пс простого (и(, подсказывает пользователю и компилятору, как предполагается употреблять эту переменную.

Например, в случае оо(д! 'глеуюогд Ьеу) ( пицсЬ (йеу) ( саьеАЗМ ,Ч некоторые дейстеип Ьгеай; сазе ВРЕАК. О неколпорые действия Ьгеай; компилятор может выдать предупреждающее сообщение о том, что проверены только два значения йеутооп( пз трех возможных, Перечисление можно инициализировать константным' выражением Я В.б) интегрального типа Я 4.1.1). Диапазон значений перечисления определяется следующим ооразом. Пусть и — максимальное возможное значение элемента перечисления. Пусть и такое минимальное целое, что 2 -! больше или равно и, Тогда верхняя граница диапазона равна 2" — !. Если наименьший элемент имеет неотрицательное значение, нижняя граница диапазона равняется нулю.

Если наименьшее значение элемента отрицательно, Мы используем прилагательное «константный», чтобы подчеркнуть связь с модификатором сопит — Т(рилеч. род Глава 4. Типы и объявления 1сб нижней границей диапазона является наименьшая бэсссжайспая отрицатеэп,ная степень двойки плюс 1. Таким образом, диапазон определяегся минимальным количеством бнт, требуемым для представления значений всех элементов перечисления. Например: епит е1 ( с!а»К 11аЬГ); //диапозон 0:1 епите2(а=3,Ь=9); // диапазон О. 15 епит еЗ ( пип = — 10, так =1000000), //диапазон -104857б:1048575 Значенссе интегрального типа можно явно привести к типу перечисления.

Если значение находится вне пределов диапазона, результат преобразования не определен Например: епит/!а8(к =1, у =2, х = 4, е= 8) //диапазон 0 15 Яау/1 = 5, //ошибка типа: 5 не принадлежит тсспу)уа8 !Гав!2 =!!ау(5); //прссвссльно — ))иу (5) исмет тссп/Са8 // и находигпся в пределах диапазона ба8 Яа818 =Дав (х(е~; //правильно — Яау (12) илсеет тсспЯад //и находится в пределах див»сазана/)аа 7)а814 =1(ад(99) //не определено; 99 находится О вне пределов диапозона)са8 Последнее прис ванванне демонстрирует причину отсутствия неявного преобразования целого в перечисление.

Большинство целых значений не имеет представления в произвольно взятом конкретном перечислении. Понятие диапазона значений перечисления в Ся 4 отличается от поня~на перечисления в языках типа Рааса(. Несмотря на это, примеры манипулирования бнтамп, требующие, чтобы значения вне набора элементов перечисления были корректно определены, имею~ долгую историю в С н С +. Размер (зсяео7) перечисления является размером некоторого интегрального типа, который в состоянии содержать весь диапазон значений перечисления. Результат не больше, чем всхеоЯспс) при условии, что элементы перечисления представилсы в виде Гасили сспзсдлес(спс.

Например, зсяео/(е1) может равнячься 1 плп 4, но не 8 ца машине, где зсгео/(спГ)==4, По умолчанию при выполнении арифметических операций перечисления преооразуются в целые (9 6.2). Перечисления являются типами, определяемыми пользователем, так что для них можно вводи~ь свои собственные операции, например +" пли «(9 11.2.3). 4.9. Объявления Прежде чем пмя (идентификатор) может быть использовано в программе на С оно должно быть объявлено.

То есть должен быть указан тип имени, чтобы компиляторр знал, на сущность какого вида ссылается имя. Приведем несколъко примеров, с члюстрирующнх различные объявления. сваг сЬ, зсгспа 3, сп1 саит = 1, сопл! йоош» и З С 41 З92О585897982485, ех1егп спс еггог ттсЬег, 4.9. Объявления сопкгсЬаг' лите = "Ьг?а!"; сон к1 сбаг" кеакоп!) = ( "весна", легло", "осень', 'зима" ); к1гис1 Ра1е(гас(, т, у; ); !п1<(агг (Ра1е" р) ( ге1игп р- г?, ) агоиЫе кдгг (с(оиЫе); гетр!а1е-с1акк?' Тпбк(Та)(ге1игп а<0?-а а;) гггрег?ег' совр!ех<кбогг> Рошй кггис1 ?гкег; епит Веег(Саг!вбегу, Тобаго, Тбог), патекрасеЖЯ( ш1а, ) Как видно из этих примеров, об ьявленпя могут делать нечто большее, чем просто связывание типа с именем. Большинство обьявлений являются еще и оггределениями, то есть они определяют некую сущность, которая соответствует имени.

Для переменной сЬ этой сущностью является подходящее количество памяти; память будет выделена. Для г?ау — это функция. Для константы р! — значение 3.1415926535897932385. Сущностью Ри!е является новый тпп. Для Рошг — тип сопгр!ех<кбогра так что Рош1 с<гаиовится синонимом сотр(ел<к бог(>. Из всех приведенных выше объявлений только г?оиб!е кдгг(г?оиЫе), ех1егп т1еггог питбег; кггис1 ??кег, не являются определениями.

Характеристики

Тип файла
DJVU-файл
Размер
10,02 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее