Главная » Просмотр файлов » Керниган и Ритчи - Язык программирования Си

Керниган и Ритчи - Язык программирования Си (793773), страница 63

Файл №793773 Керниган и Ритчи - Язык программирования Си (Керниган и Ритчи - Язык программирования Си) 63 страницаКерниган и Ритчи - Язык программирования Си (793773) страница 632019-04-24СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Перечень измененийС момента публикации первого издания этой книги определение языка Си претерпело изменения. Почти всенововведения — это расширения исходной версии языка, выполненные так, чтобы сохраниласьсовместимость с существующими программами; некоторые изменения касаются устранениядвусмысленностей первоначального описания, а некоторые представляют собой модификации,привнесенные существующей практикой. Многие из новых возможностей, впоследствии принятые другимиразработчиками Си-компиляторов, были первоначально объявлены в документах, прилагаемых ккомпиляторам. Комитет ANSI, подготавливая стандарт языка, включил большинство этих изменений, а такжеввел другие значительные модификации.

Некоторые коммерческие компиляторы реализовали их еще довыпуска официального Си-стандарта.В этом приложении сведены воедино различия между языком, определенным в первой его редакции, и тойего версии, которая принята в качестве стандарта. Здесь рассматривается только сам язык; вопросы,относящиеся к его окружению и библиотеке, не затрагиваются. Хотя последние и являются важной частьюстандарта, но, поскольку в первом издании не делалось попытки описать среду и библиотеку, ссоответствующими стандартными элементами сравнивать практически нечего.В стандарте более тщательно, по сравнению с первым изданием, определено и расширенопрепроцессирование: в его основу явно положены лексемы; введены новые операторы для"склеивания" лексем (##) и создания символьных строк (#), а также новые управляющие строки, такиекак #elif и #pragma; разрешено повторное определение макроса с той же последовательностьюлексем; отменена подстановка параметров внутри строк.

Разрешено "склеивание" строк с помощьюзнака \ в любом месте, не только в строках и макроопределениях (см. А12).Минимальное число значимых символов всех внутренних идентификаторов доведено до 31; дляидентификаторов с внешней связью оно остается равным 6; буквы нижнего и верхнего регистров неразличаются. (Многие реализации допускают большее число значимых символов.)Для знаков #, \, X, [, ], { , } , ! , 0, которых может не быть в некоторых наборах символов, введенытрехзнаковые последовательности, начинающиеся с ?? (см.

А12.1). Следует заметить, что введениетрехзнаковых последовательностей может повредить значения строк, в которых содержатся ??.Введены новые ключевые слова (void, const, volatile, signed, enum), а мертворожденноеслово entry из обращения изъято.Для символьных констант и строковых литералов определены новые эскейп-последовательности.Объявлено, что появление за \ символов не из принятых эскейп-последовательностей приводит кнепредсказуемому результату (см. А2.5.2.)Узаконено полюбившееся всем тривиальное изменение: 8 и 9 не являются восьмеричными цифрами.Введен расширенный набор суффиксов для явного указания типов констант: U и L — для целых и F и L— для типов с плавающей точкой.

Уточнены также правила определения типа для констант безсуффиксов (А2.5).Объявлено, что соседние строки конкатенируются.Предоставлены средства, позволяющие записывать строковые литералы и символьные константы израсширенного набора символов (А2.6).Объекты типа char (как и объекты другого типа) можно специфицировать явно со знаком или беззнака. Исключается использование словосочетания long float в смысле double, но вводится типlong double для чисел с плавающей точкой повышенной точности.С некоторых пор доступен тип unsigned char. Стандарт вводит ключевое слово signed дляявного указания, что объект типа char или другого целочисленного типа имеет знак.Уже несколько лет в большинстве реализаций доступен тип void.

Стандарт вводит void * в качестветипа обобщенного указателя; раньше для этой цели использовали char *. Одновременно вступают всилу правила, по которым запрещается без преобразования типа "смешивать" указатели и целые илиуказатели разных типов.Стандарт устанавливает минимальные пределы диапазонов арифметических типов, предусматриваетзаголовочные файлы <limits.h> и <float.h>, в которых помещаются эти характеристики длякаждой конкретной реализации.Перечисление — новый тип, которого не было в первой редакции.Стандарт заимствует из Си++ способ записи квалификатора типа, в частности квалификатора const(A8.2).Вводится запрет на модификацию строк; это значит, что их разрешается размещать в памяти,доступной только на чтение (ПЗУ).Изменены "обычные арифметические преобразования"; по существу, выполнен переход от принципа"для целых всегда превалирует unsigned; для плавающей точки всегда используется double" кпринципу "повышение до минимального достаточно вместительного типа" (см.

А6.5).Отменены старые операторы присваивания вроде =+. Каждый оператор присваивания теперьпредставляется одной отдельной лексемой. В первом издании оператор присваивания могизображаться парой символов, возможно, разделенных символами-разделителями.Компиляторам более не разрешается трактовать математическую ассоциативность операторов каквычислительную ассоциативность.Введен унарный оператор + для симметрии с унарным -.Разрешено использовать указатель на функцию в качестве ее именующего выражения без явногооператора * (см.

А7.3.2).Структурами разрешено оперировать, при присваиваниях, можно передавать структуры в качествеаргументов функциям и получать их в качестве результата от функций.Разрешено применять оператор получения адреса & к массиву; результатом является указатель намассив.В первой редакции результат операции sizeof имел тип int; во многих реализациях он заменен наunsigned. Стандарт официально объявляет его зависимым от реализации, но требует, чтобы он былопределен в заголовочном файле <stddef.h> под именем size_t.

Аналогичное изменение былосделано в отношении типа разности указателей, который теперь выступает под именем ptrdiff_t(см. А7.4.8 и А7.7).Запрещено применять оператор получения адреса & к объекту типа register даже тогда, когдаданный компилятор не располагает его на регистре.Типом результата операции сдвига является тип ее левого операнда; тип правого операнда наповышение типа результата влияния не оказывает (см. А7.8).Стандарт разрешает адресоваться с помощью указателей на место, лежащее сразу за последнимэлементом массива, и позволяет оперировать с такими указателями, как с обычными, см.

А7.7.Стандарт вводит (заимствованный из Си++) способ записи прототипа функции с включением в неготипов параметров и явного указания о возможности их изменения и формализует метод работы спеременным списком аргументов. (См. А7.3.2, А8.6.3, В7.) С некоторыми ограничениями доступен истарый способ записи.Стандартом запрещены пустые объявления, т. е. такие, в которых нет объявителей и не объявляетсяни одной структуры, объединения или перечисления.

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

Всем тегам структур, объединений иперечислений стандарт выделяет одно именное пространство; для меток инструкций вводитсяотдельное именное пространство (см. АИЛ). Кроме того, имена элементов связаны со структурой илиобъединением, частью которого они являются. (С некоторых пор это общепринятая практика.)Допускается инициализация объединения; инициализатор относится к первому элементуобъединения.Разрешается инициализация автоматических структур, объединений и массивов, хотя и с некоторымиограничениями.Разрешается инициализация массива символов с помощью строкового литерала по точномуколичеству указанных символов (без '\0').Управляющее выражение и case-метки в switch могут иметь любой целочисленный тип..

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

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

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

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