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

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

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

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

Объявления разрешатся помещать в любом местс, где допустима инструкция (н епге в некоторых местах; у б.3.2.1, с1 6.8.3.1). Это сделано для того, чтобы программист мог свести к минимуму количество ошибок, вызываемых неинициализированными переменными, п для лучшей локализации кода. Редко возпнкаютситуацни, когда переменную нужно объявить до того, как она примет некоторое значение. Например: понц(оесГог<е!Ппу>с о, )пГ й сопеГ сйаг" р) ( (г чз==д) гегигп, (Г (!<О!) о егге ()<=1) еггог('неправильный индекс ), вгппув = о[ц; 1У (в == Р) ( О- Возможность помещения объявлений после исполняемого кода может иметь существешюе значение для многих констант и для стилей программирования с однократным присваиванием, когда значение объекта не меняется после инициализации.

В случае с типами, определяемыми пользователями, отказ от инициализации до тех пор, пока не станет доступен приемлемый пнпцпалпзатор, может привести к лучшей производительности. Например, еснпув, / ... *7 я = Лучшее — враг хорошего,', вполне может оказаться медленнее, чем вГгГпдв.= "Вольтер"; Наиболее частой причиной объявления переменной без инициализации является случай, когда для инициализации требуется инструкция.

Примерами люгут служить переменные, в которые осуществляется ввод, и массивы. 6.3.2. Инструкции выбора Значение может проверяться в инструкциях д и вшстссс (Г (условие)инструкция (1 (условие) инструкция е)ее инструкция етвсь(условие) инструкция Резулы атом применения операторов сравнения « = » = является 1гие, если сравнение истинно, иуа(ве в противном случае. Если выражение в инструкции (7" не равно нулю, выполняется первая (и возможно единственная) инструкция, в противном случае — вторая (если она указана).

Отсюда Глава 6. Выражения и инструкции следует, что в качестве условия могут использоваться любые арифметические выра- жения илп выражения с указателями. Например, если х целое, то )У)х) П- означает ))')х =О)П .. Для указателя р ~УФ)П-. является явной проверкой того, что <руказывает надопустимый объекта (т.

е. надлежа- щим образом инициализированный), в то время как У)р'=0)0- осуществляет ту же самую проверку менее явно, сравнивая указатель со значением, о котором известно, что оно не может указывать на объект. Обратите внимание, что «нулевойя указатель нс обязательно представляется нулевой последовательностью битов на всех л~ащинах Я 5.1.1).

Все компиляторы, которые я проверял, генерируют одинаковый код для обеих форм сравнения. Логические операторы Ь6 )) < наиболее часто используются в сравнениях. Операторы о<я и )) вычисляют второй аргумент, только если в атом есть необходимость.

Например, )г )р Йъ!<р — >совая) О ... сначала сравнивает р с нулем. Проверка 1<р->соипг осуществляется только в том случае, если р не равно нулю. Некоторые условные 1~ингтруции можно записывать в виде услояяьст яыражений. Например, )г' )а <=- Ь) тах=Ь; е1ке тая=а, лучше выглядит в следующем виде: щах = )а <= Ь) 2 Ь. а, Заключать сравнение в скобки необязательно, но, по-моему, так легче читать код.

ящ)1сй-инструкцию всегда можно заменить набором условных инструкций. Например, явпсй )са)) ( саяе б Л, Ьгеа/г; саке 2 2 ))' Ьгеад; 177 Б.З. Инструкции Йе)аи!Е. Ь (), ЬгеаК может быть записано как (1 (оа1 == !) Х(), е!яе !1' (оа! == 2) 20, е!яе Ь(); Смысл одинаковый, но первая форма (яш!1сй) предпочтительней, потому что лучше отражает идею сравнения (сопоставление значения с набором констант). Поэтому яш!1сл легче воспринимается при чтении нетривиальных примеров и сгенерированный код может оказаться лучше.

Отдавайте себе отчет в том, что каждая ветвь саяе должна как-нибудь завершаться, если вы не хотите, чтобы продолжали выполняться и другие инструкции саяе. Например, яв1гсй (оа!) ( саяе 1. сои!« 'саяе 11а'; саяе 2 сои! « "саяе 21н"; йе~аи!1 сои! « "де~аи!!.

ни один случай не соответствует"; ) при оа1=-! к великому изумлению непосвяп1енных выдаст саяе 1 саяе 2 йе)аи!1. ни один случай не соответствует Редкие случаи, когда такой подход осуществляется намеренно, лучше комментировать. Обычным способом завершения саяе является инструкция Ьгеай, но часто полезна и ге!игл Я 6.1,1).

6.3.2.1. Объявления в условиях Во иабежание случайного неправильного использования переменных их лучше вводить в наименьшей возможной области видимости. В частности, локальную переменную лучше объявлять в тот момент, когда ей надо присвоить значение. В этом случае исключаются попытки использования переменной до момента ее инициализации. Одним из самых элегантных применений этих идей является объявление переменной в условии. Рассмотрим пример: (1' (доиЫе с!= рг!т (иве)) ( !е711=- д; ЬгеаК ) Глава б.

Выражения и инструкции )78 В примере происходит объявление переменной с(, в после инициализации она проверяется в условии. Область видимости переменной с( простирается от ее точки объявления до конца инструкции, контролируемой условием. Если бы в инструкции ((была ветвь е1ве, областью видимости с( были бы обе ветви. Очевидной и традиционной альтернативой является обьявление переменной с(до ссловия, но в этом случае область видимости началась бы до места использования переменной и продолжалась бы после завершения ее «сознательной' жизни: с(виЬ(е с(, О.

с(2 = с(, 0- ,Ссс Внилиание! (1' (с( = рг(т (и ие)) ( (ез) 1= с(, Ьгеад, сс1 два несвязанных использования д с(= 20, Объявление переменных в условиях, кроме логических преимуществ, приводит к более компактному исходному коду. Объявление в условии должно объявлять и инициализировать единственную переменную или константу 6.3.3.

Инструкции циклов Дикльз можно выразить инструкциями трех видов — 1ог, ш(с(1е и с(а: тlи(е (рс«авив) инструкция с(а инстр(скчсся тЬВе ( выразкенссе ); лаг ( инил нализ иРдюи)а Я гснссиРДклиЯ уел авиен,„выРа жение е ) инстРДкдил Каждая из этих инструкций приводит к многократному выполнению инструкций (называемых также унравляелзыми инструкциями или телом цикла) ло тех пор, пока условие пе примет значение 1а(ве, либо программист не прервет цикл каким-либо другим способом.

1ог-инструкция предназначена для реализации регулярных циклов. Переменную цикла, условие завершения и выражение, которое модифицирует переменную цикла, можно записать в единственной строке. Это, как правило, увеличивает читабельность кода и, следовательно, ведет к уменьшению ошибок. Если инициализация не требуется, соответствующая часть может бгять опущена.

Если отсутствует условие, (ог-инстрвкция будет либо выполняться вечно, либо будет явно прервана при помощи Ьгеай, ге(ига, йа!о, (йгош нли менее явным способом, вроде вызова функции ехЫ () Я 9А.1.1). Если выражение пропущено, мы должны обновлять некоторую переменную цикла в теле цикла. Если цикл не принадлежит типу «введи переменную цикла, проверь условие, модифицируй перемен пузо цикла, его лучпзе записать в ниле инструкции шй)1е. Полезным примером использования цлклауог является случай, когда явно не указывается условие завершения: б 3. Инструкции Уаг[,)[ О «вечно» О.. ш)г((е-инструкцпя просто исполняет тело цикла до тех пор, пока условие не станет ГаЬе.

Я предпочитаю пользоваться циклом щЫе вместо гог, когда нет очевидной переменной цикла, либо когда естественным местом для ее модификации является середина гела цикла. Пикл ввода является примером цикла, где нет очевидной пер— менной цикла: шй)!е [с)п»сй) 0-. По моему мнению, г(о-инструкция является источником ошибок и путаницы. Причинаа заключается в том, что ес тело всегда один раз выполняется до проверки условия. Но лля того чтобы тело выполнялось корректно, что-то типа условия должно выполняться даже при первом проходе.

Чаще, чем я мог бы предположить, я сталкивался со случаями, когда условие не выполнялось (как от него ожидали) либо когда программа была первый раз написана и отлажена, либо позднее, после того, как предшествующий код был изменен. Также я предпочитаю явные условия, которые я мог бы легко проверить. Соответственно, я не склонен использовать с(о-инструкцию 6.3.3.1. Объявления в Фог-инструкции Переменную можно объявить в части инициализации инструкциигог. В этом случае область видимости переменной (илп перемеьшых) простирается до конца~оп-ипстг рукции. Например: пагаЯпГ и[], гпГ тах) ( ~ог [юг 1 = О, 1«тах, г'н-) э[1) = рб Если требуется узнать значение индекса после выхода из цн кланг, переменную надо объявить вне его (пример з 6.3.4).

6.3.4. цо(о В С+в имеется пресловутая инструкция до(о: доГо адентпфикатор; пдептягрикатор. пнапрркяия Существует очень мало примеров нспользонания до(о прн программировании на высоком уровне, но зта инструкция может быть крайне полезна, когда код С-ьч генерируется программой, а не человеком. Например, рого могут быть использованы в анализаторе, сгенерированном по описанию грамматики. Инструкция до(о может также оказаться полезной в редких случаях, когда требуется максимальная производительность, например во внутреннем цикле приложения, работающего в реальном времени.

Одним из немногих разумных способов использования дога в обычном коде является выход из вложенного никла или зш(Гсл-инструкции (Ьг еав прекращает выполнение только самого внутреннего цикла или знл(сл-инструкции). Например: 180 Глава б. Выражения и инструкции оосдУ'с) ( спг с, спг1', аког Сс=у, с<п, сь<1 гогс'=0,1<си,)+ь~ сг1пт1с)сс)== а~ уогогоипд, с сс не тсидено О.. Уоипд 0 ии==.

Имеется также инструкция соп1спие, которая передает управление в конец цикла (см. ч 6.1.5). 6.4. Комментарии и отступы Разумное использование комментариев и согласованное употребление отступов может сделать чтение и понимание программы более приятным занятием. Существует песка лько стилей отступов. Я не нижу основательных причин предпочитать один из них другому (хотя, как и у большинства программистов, у меня есть свои привычки, продемонстрированные в этой книге). То же самое можно сказать и о стиле комментариев Прп неправильном использовании комментариев может серьезно пострадать читабельность программы.

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

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

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

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