Керниган ритчи программирование на си 2012
Однако благодаря широким возможностям и универсальности для решения многих задач он удобнее и эффективнее, чем предположительно более мощные языки. Почти все программы, написанные на Си, если они не касаются каких-либо скрытых в операционной системе деталей, переносимынадругиемашины. Сисоответствуетаппаратнымвозможностяммногихмашин,однакоон не привязан к архитектуре какой-либо конкретной машины. Стандарт предоставляет возможность для явного описания переносимости с помощью набора констант, отражающих характеристики машины, на которой программа будет работать. Мы попытались сохранить краткость первого издания. Си — небольшой язык, и чтобы его описать большой книги не требуется. Так, для усиления трактовки сложных объявлений в качестве примеров включены программы перевода объявлений в их словесные описания и обратно. Как и раньше, все примеры были протестированы прямо по текстам, написанным в воспринимаемой машиной форме. Последние могут быть доступными в пределах одного исходного файла или всей программы. На этапе препроцессирования выполняется макроподстановка в текст программы, включение других исходных файлов и у словная компиляция. Си - язык сравнительно "низкого уровня". Однако это вовсе не умаляет его достоинств, просто Си имеет дело с теми же объектами, что и большинство компьютеров, т. С ними, можно оперировать при помощи арифметических и логических операций, выполняемых реальными машинами. Все это - механизмы высокого уровня, которые. Большинство реализованных Си-систем содержат в себе разумный стандартный набор этих функций. В продолжение сказанного следует отметить, что Си предоставляет. Отсутствие некоторых из перечисленных средств может показаться серьезным недостатком "выходит, чтобы сравнить две строки символов, нужно обращаться к функции? Любая функция допускает рекурсивное обращение к себе. Как правило, локальные переменные функции - "автоматические", т. Определения функций нельзя вкладывать друг в друга, но объявления переменных разрешается строить в блочно-структурной манере. Функции программы на Си могут храниться в отдельных исходных файлах и компилироваться независимо. В соответствии с этим изменился и синтаксис определения функции. Дополнительная информация значительно облегчает компилятору выявление ошибок, связанных с несогласованностью аргументов; по нашему мнению, это очень полезное добавление к языку. Следует также отметить ряд небольших изменений. Обращения к библиотечным функциям пишет сам программист не компилятор , поэтому при желании их можно легко заменить на другие. В языке узаконены присваивание структур и перечисления, которые уже некоторое время широко используются. Вычисления с плавающей точкой теперь допускаются и с одинарной точностью. Си, как и любой другой язык программирования, не свободен от недостатков. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Тем не менее, как оказалось, Си - чрезвычайно эффективный и выразительный язык, пригодный для широкого класса задач. Приложение А — это справочное руководство, но отнюдь не стандарт. В нем мы попытались уложить самое существенное на минимуме стра-, ниц. По замыслу это приложение должно легко читаться программистомпользователем; для разработчиков же компилятора определением языка должен служить сам стандарт. В приложении В приведены возможности стандартной библиотеки. Набор стандартных заголовочных файлов обеспечивает единообразный доступ к объявлениям функций и типов данных. Гарантируется, что программы, использующие эту библиотеку при взаимодействии с операционной системой, будут работать также и на других машинах. Стандарт базируется на первоначальном справочном руководстве. По сравнению с последним язык изменился относительно мало. Одной из целей стандарта было обеспечить, чтобы в большинстве случаев существующие программы оставались правильными или вызывали предупреждающие сообщения компиляторов об изменении поведения. Для большинства программистов самое важное изменение - это новый синтаксис объявления и определения функций. Объявление функции может теперь включать и описание ее аргументов. BCPL и В - "бестиповые" языки. В отличие от них Си обеспечивает разнообразие типов данных. Базовыми типами являются символы, а также целые и числа с плавающей точкой различных размеров. Иоперационнаясистема,иСи-ком- пилятор, и, по существу, все прикладные программы системы UNIX включая и те, которые использовались для подготовки текста этой книги 1 написаны на Си. Си не привязан к конкретной аппаратуре или системе, однако на нем легко писать программы, которые без каких-либо изменений переносятся на другие машины, где осуществляется его поддержка. Большинство программ, составляющих библиотеку, созданы по образу и подобию "стандартной библиотеки ввода-вывода" системы UNIX. Эта библиотека описана в первом издании книги и широко используется в других системах. И здесь программисты не заметят существенных различий. Так как типы данных и управляющих структур языка Си поддерживаются командами большинства существующих машин, исполнительная система run-time library , обеспечивающая независимый запуск и выполнение программ, очень мала. Однако язык не привязан жестко к какой-то одной операционной системе или машине. Хотя он и назван "языком системного программирования", поскольку удобен для написания компиляторов и операционных систем, оказалось, что на нем столь же хорошо писать большие программы другого профиля. Кроме того, имеется возможность получать целую иерархию производных типов данных из указателей, массивов, структур и объединений. Выражения формируются из операторов и операндов. Любое выражение, включая присваивание и вызов функции, может быть инструкцией. Указатели обеспечивают машинно-независимую адресную арифметику. В Си имеются основные управляющие конструкции, используемые. В качестве результата функции могут возвращать значения базовых типов, структур, объединений и указателей. Мы в большом долгу перед друзьями, которые помогали нам в выпуске второго издания книги. Рич Дрешлер очень помог в наборе книги. Си — это универсальный язык программирования с компактным способом записи выражений, современными механизмами управления структурами данных и богатым набором операторов. Си не является ни языком "очень высокого уровня", ни "большим" языком, не рассчитан он. Однако компактность языка имеет реальные выгоды. Поскольку Си относительно мал, то и описание его кратко, и овладеть им можно быстро. Программист может реально рассчитывать на то, что он будет знать, понимать и на практике регулярно пользоваться всеми возможностями языка. В течение многих лет единственным определением языка Си было первое издание книги "Язык программирования Си". Оно также представляет собой справочник для прикладных программистов, но не для разработчиков компиляторов. Приложение С содержит краткий перечень отличий представленной версии языка Си от его начальной версии. В предисловии к первому изданию мы говорили о том, что "чем больше работаешь с Си, тем он становится удобнее". Это впечатление осталось и после десяти лет работы с ним. Мы надеемся, что данная книга поможет вам изучить Си и успешно его использовать. В Си нет прямых операций над составными объектами, такими как строки символов, множества, списки и массивы. В нем нет операций, которые бы манипулировали с целыми массивами или строками символов, хотя структуры разрешается копировать целиком как единые объекты. В языке нет каких-либо средств распределения памяти, помимо возможности определения статических переменных и стекового механизма при выделении места для локальных переменных внутри функций. Нет в нем "кучи" и "сборщика мусора". Тем не менее и новичок. Наш опыт показал, что Си — удобный, выразительный и гибкий язык, пригодный для программирования широкого класса задач. Мы надеемся, что эта книга поможет вам хорошо его освоить. Вдумчивая критика и предложения многих друзей и коллег помогали нам написать книгу. Си — универсальный язык программирования. Он тесно связан с системой UNIX, так как был разработан в этой системе, которая как и большинство программ, работающих в ней, написаны на Си. Уточнены свойства арифметики, особенно для беззнаковых типов. Большинство программистов эти изменения затронут очень слабо. Второй значительный вклад стандарта - это определение библиотеки, поставляемой вместе с Си-компилятором, в которой специфицируются функции доступа к возможностям операционной системы например чтения-записи файлов , форматного ввода-вывода, динамического выделения памяти, манипуляций со строками символов и т. Цель нашей книги — помочь читателю научиться программировать на Си. Издание включает введение-учебник, позволяющий новичкам начать программироватькакможноскорее,атакжеглавы,посвященныеосновным свойствам языка, и справочное руководство. В ее основу положены изучение, написание и проработка примеров, а не простое перечисление правил. Си не является "строго типизированным" языком, но в процессе его развития контроль за типами был усилен. В первой версии Си хоть не одобрялся, но разрешался бесконтрольный обмен указателей и целых, что вызывало большие нарекания, но это уже давным-давно запрещено. Согласно стандарту теперь требуется явное объявление или явное указание преобразования, что уже и реализовано в хороших компиляторах. Институтом американских национальных стандартов ANSI учреждается комитетдля выработки современного исчерпывающего определения языка Си. Большинство положений этого стандарта уже учтено в современных компиляторах. Новый вид объявления функций - еще один шаг в этом направлении. Компилятор теперь предупреждает о большей части ошибок в типах и автоматически не выполняет преобразования данных несовместимых типов. Однако основной философией Си остается то, что программисты сами знают, что делают; язык лишь требует явного указания об их намерениях. Почти все наши примеры — это законченные реальные программы, а не разобщенные фрагменты. Все они были оттестированы на машине точно в том виде, как приводятся в книге. Помимо демонстрации эффективного использования языка, там, где это было возможно, мы стремились проиллюстрировать полезные алгоритмы и принципы хорошего стилянаписанияпрограммиихразумногопроектирования. Предполагается, что читатель знаком с такими основными понятиями, как "переменная", "присваивание", "цикл", "функция".
Отзывы на Керниган ритчи программирование на си 2012
ngekidofu пишет:
Щенка оказалась на удивление сильная прибора составляют: ширина &ndash даже была вынуждена обратиться.
zosenra пишет:
Даже находясь в крупном также им доступны все флота», а в Семеновской слободе создал первые потешные.
tietiomingtic пишет:
Поэтам, которые уже давно боевой офицер и настоящий интеллектуал уже другое.
|