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

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

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

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

Нас интересует только то, каким образом это влияет направила С ч-. Более масштабные н интересные проблемы, связанные с программированием в средах, поддерживающих несколько языков или несколько наборов сил1волов, выходят за рамки этой книги, хотя и упоминаются в некоторых местах ((1 20.2, э 21.7, э ВЗ.З). Можно с достаточной степенью уверенности преггположить, что набор символов конкретной реализации включает в себя десятичные цифры, 26 букв апг,пшского алфавита и некоторые основные знаки пунктуации. Небезопасно полагать, что 8-битный набор символов содержит только 127 символов (некоторые наборы содержат 256 символов), что нет символов, кроме английских букв (в большинстве европейских языков нх больше), что символы алфавита непрерывны (в стандарте ВВСП1С между г и г'имеется разрыв) нли что будут реализованы все символы, используемые в синтаксисе С++ (в некоторых национальных кодировках отсутствуют символы (, ), ), ], ), ~ — см, э" В.З.!).

Там, где это только возможно, следует избегать предположений о форме представления объектов. Это общее правило применимо даже к символам. Каждая символьная константа имеет числовое значение. Например, значением 'Ь' в наборе символов АЗСП является 98. Приведем пример программы, которая будет выводить целое значение введенного символа: П1пс!иНе <1оеи еат> тгтасп 1) сЬагс, вГй. и'п»с; вЫ>сонг «' значением '" с«" является " «спг)с) «'~п'; Выражение (п1 )с) возвращает целое значение, соответствующее символу 'с'. Вследствие возможности преобразования сЬаг в целое возникает следующая проблема: как интерпретировать сЬаг — со знаком или без? 256 значений, представляемых восемью битами, можно интерпретировать как значения от О до 255, либо как значения от -128 до 127.

К сожалению, выбор зависит от конкретной реализации (6 В.1, ~ В.ЗА). В С+~- имеется два способа явного указания диапазона; в1йпедсйагозпачает диапазон от -128 до 127, а ипв(днес( сйаг — от О до 255. К счастью, разница касается только значений вне диапазона Π— 127, а в последнии попадают все наиболее употребительные символы. Значения вне разрешенного диапазона, хранимые в сйаг, могут привести к тонким проблемам переносимости. Обратитесь к разделу 6 В.З.4, если вам необходимо использовать более одного типа сЬаг, или если вы храните целые числа в переменных типа сЬаг. Лля хранения символов из больших наборов, таких как Пп1со<1е, пмеегся тпп шсЬаг б Это специальньш тип.

Размер шсЬаг 1зависит от реализации; оп достаточно велик для представления всего набора символов, поддерживаемого данной реа- 4.3. Символьные типы лизацпей (см. 9 21.7, ч В.З.З). Странное имя (щсйаг 1) досталось по наследству от С. В С щсйаг 1 реализован как 1у)телег'Я 4.9.7), а не как встроенный тип. Суффикс 1 использовался, чтобы указать на определение через 1уре<(еЕ Обратите внимание, что символьные типы являются интегральными Я 4.1.1), так что к ним можно применять арифмст»<легкие н логические операции Я 6.2), 4.3.1. Символьные литералы Символьным литералом (символьной константой) называется символ, заключенный в одиночные кавычки.

Например, 'а' плп 'О'. Типом символьного литерала является с7<аг. Такие символьные литералы в действительности являются символическими константами, обозначающим целые значения сил<волов из набора символов па компьютере, на котором будет выполняться программа, Например, если вы запускаетс программу на машине, ь<спользую<цей набор АЯСП, значением 'О' будет 48. Использование символьных литералов вместо де< ятпчных обозначений делае~ программы более переносимыми. Несколько символов имеют специальное назначение. Онн записываются с помощью символа обратной косой черты <.

Например, '1 и' является символом перевода строки, а '<,1' — горизонтальной табуляцией. Подробности см. в 9 В.З.2. Символьные л«тералы пз расширенного набора записываются в виде Е'аб', при этом количество символов между одиночными кавычками и цх значение зависят от реализации и соответствуют типу щс)<аг 1. Литералы из расширенного символьного набора имеют тип щсЬаг 1. 4.4. Целые типы Также как и сваг, каждый целый тип может быть представлен в одном пз трех видов: «просто» т1 з(упе<1 т1 и ипз(упе<1 т1. Кроме того, целые могут быть трех размеров: ялог1 <п1, «просто» <п1 и )опут1.

Вместо 1опут1можно писать просто 1опд. Аналогично, з1<ог1 является синонимом для з1<ог1 т1, ипз<упе<1 — для ипз(ул с<1 т1и з!ул с<1 — для з|уп е<1 1п1 Типы илз1дпеа< (без знака) идеально подходят для задач, в которых память интерпретируется как массив битов.

И< пользование илядпе<3 вместо т1 с целью заработать лишний бнт для представления положительных целых почти всегда оказывается неудачным решением. Игпользование же обьявлсния илз<упе<Едля гарантии того, что целое будет неотрицательным, почти никогда не сработав~ из-за правил неявного преобразования ~илов (6 В.6.1, 9 В.6.2.1). В отличие от «просто> сваг, «просто» 101 всегда знаковые. Тпп з1дле<1 <п1(целое со знаком) является более точным синонимом «просто 1п1. 4.4.1. Целые литералы Целые литералы бывают: десятичные, восьмеричные, шестнадцатеричные и символьные (ь' А 3). Наиболее часто используются десятичные литералы и выглядят онп так, как вы и ожидаете: 0 1234 97б 12345б78901234507890 Компилятор должсн выдавать предупреждающее сообщение о литералах, слишком длинных для внутреннего представления.

112 Глава 4. Типы и объявления Литерал, который начинается с нуля н символа «хя (Ох), являешься шестнадцатеричным числом. Литерал, который начинается с нуля, за которым следуют цифры, является восьмеричным числом. Например; десягггичные: 2 63 ЗЗ аосьлгерн«ннег 00 02 077 0123 гаестнадяатеричннс: Охб Ох2 Ох31 Ох53 Буквы а, Ь, с, с(; е н!", либо их эквиваленты в верхнем регистре, используются для обозначения 10, 11, 12, 13, 14 н!5 соответственно. Восьмеричная п шегтнадцатернчная формы наиболее полезны для записи пеночек битов, 1Лспользование этих форм для записи обычных чисел может привести к неприятным сюрпризам.

Например, па машшге, где гп1 реализован комплиментарным (дополнительным) 16-битным словом, ОхуЩозначает десятичное — 1. Если же под целое отводится больше бит, Охи'будет равно б5535. Для явной записи литералов без знака (ипз1дпес1), можно использова~ь суффикс (7 Лналогичгго, суффикс Е можно использовать для явной записи 1опд-лгитералов. Напрнмер, 3 является константой типа 1гг1, 3(7 — ипзгулег1 Ы! и 31.

— 1опд Ы!. Гели суффикс отсутствует, компилятор присваивает целому литералу подходящий тпп, основываясь на его значении и размере целых в данной реализации Я В 4). Неплохо ограничить использование неочевидных констант несколькимц хорошо откомментированными соне! Я 5.4) илп инициализаторами перечислений Я 4.8). 4.5. Типы с плавающей точкой Типы с плавающей точкой представляют числа с плаваюгцей точкой. 1<ак и целые, типы с плавающей точкой представлены тремя размерами Яоа! (одинарной точности), агоиЫе (двойной точности) и !опд г1оиЫе (расширенной точноспг). Точный смысл каждого типа зависит от реализации.

Выбор нужной точности в реальных задачах требует хорошего понимания природы машинных вычислений с плавающей точкой. Если у вас его нет, либо проконсультируйтесь с кем-нибудь, либо изучите проблему сами, либо используйте с(оиЫе и надей~есь на лучшее. 4.5.1. Литералы с плавающей точкой По умолчанию литералы с плавающей точкой являются константами тгипа агоиЫе. Как обычно, компилятор должен вывестн предупреждение, сели литерал слишком длинен для его правильного представления. Вот несколько примеров литералов с плавагощегтг точкои: 1 23 .

23 0.23 1. 1.0 1 2е10 ! 23е — 15 Обратите внимание, что в записи литералов с плавающей ~очкой не должно быль пробелов. Например, 65,43 е-21 не является литералом, и будет воспринято, скорее всего, как набор четырех различньгх лексических единиц (что вызовет синтаксическую ошибку): 65 43 е — 21 Гслп требуешься литеры типа 11ои1, можно явно определить его с помощью суффикса ! (гг.чи Г): 314159265!' 20!' 2997925с 2.9е-З! Если требуется литерал типа 1опд агоиЫе, можно явно определить его с помощью суффикса!(или А): 3.14159265! 2.01 2.9979251.

2.9е-Л 4.6 Размеры 4.6. Размеры Некоторые свойства фундаментальных типов С«», например, размер переменной типа !лй зависят от реализации Я В 2). Я все| да указываю на эти зависимости н часто рекомендую избегать их или по крайней мере предпринимать шаги для сведения к минимуму их воздействия. Почему следует обращать на это внимание? Люди, пишущие программы в нескольких системах илп пользую|циеся несколькими компиляторалш, просто вынуждены уделять этому огромное внимание, поскольку в противном случае им придется тратить время на поиск и исправление нетривиальных ошибок.

Люди, которые заявляют, что пх не волнует проблема переносимости, обычно работают в одной системе и думают примерно так: «С«» это то, что понимает мой компилятор на моем компьютере»ъ Я счи~аю эту точку зрения узкой и недальновидной. Если вы написали удачную программу, вполне возможно ее захотя~ использовать в другой среде и кому-то придется искать и устранять проблемы, связанные с нюансами реализации. Кроме того, час~о возникает потребность скомпн.пировать программу другнмп компиляторами в той же самой среде и даже последующие версии вашего любимого компилятора мокнут интерпретировать неко~орые вещи но-другому.

Намного проще понять и ограничить влияние вещей, зависящих от реализации, непосредственно во время написания программы, чем пытаться разобраться с возникающими проблемалш «потел~». Ограничить воздействие реализации относительно п)зосто. Гораздо сложнее устранить спеппфнку библиотечных средств, зависящих от спс.семы. Одним из способов решения этой проблемы является использование стандартных библиотек, когда это возможно. Целью существования более одного целого типа, нескольких беззнаковых типов и нескольких вариантов чисел с плавающей точкой является предоставление программисту возможности эффективно использовать аппаратные средства.

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

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

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

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