9 великолепных бесплатных книг для изучения C

Книги - вещь для профессионалов, и книги для программистов - не исключение. В данной статье мы отобрали 9 книг для изучения языка C.

C - процедурный высокоуровневый язык, который, пожалуй, больше всего повлиял на то, каким мы сегодня видим программирование. Он был создан для того, чтобы обеспечить программисту низкоуровневый доступ к памяти компьютера, чтобы писать эффективный код, который требует минимальной поддержки во время работы. Множество языков программирования обязано C своим существованием. Некоторые называют C латынью в мире программирования.

Язык лёгок на чтение. Он позволяет программисту структурировать код и делать его более читабельным. К тому же, язык очень гибкий, практичный и компактный, с легко понимаемым синтаксисом. Код, написанный на C, работает быстро, обеспечивает низкоуровневый доступ к памяти. Директивы компилятора позволяют программе, скомпилированной на одной архитектуре, благополучно работать и на других. C очень многогранен, и о нём было написано много книг.

Предлагаем вашему вниманию 9 книг для изучения языка C, которые могут вас зацепить, если, конечно, английский для вас - не проблема. Надеемся, этот сборник книг станет для вас удачным началом изучения C.

%image_alt%The C Book (350 страниц)

Книга, написанная Майком Банаханом (Mike Banahan), Декланом Брэйди (Declan Brady) и Марком Дораном (Mark Doran).

"The C Book" открывает наш сборник книг. Она написана для программистов, которые уже имеют опыт в использовании других современных процедурных языков программирования. Книга фокусируется на особенных для C вещах. А именно, на том, ради чего C был изначально придуман.

Некоторые из глав:

  • Вступление в C
  • Переменные и арифметика - посвящает читателя в фундаментальные основы языка, знакомит его с ключевыми словами, идентификаторами, объявлениями переменных, вещественным, целочисленным типами данных, выражениями, арифметикой в языке, а также с константами
  • Порядок выполнения программы и логические выражения - посвящает читателя в жизненный цикл программы, логические выражения, которых не было в предыдущей главе
  • Функции - возвращаемые значения, входные аргументы, рекурсии
  • Массивы и указатели - массивы, указатели, символьный тип данных, sizeof() и выделение памяти, указатели функций, выражения со знаком &, объявление функций
  • Структурированные типы данных - структуры, union, bitfield, enum, классификаторы, производные типы данных и инициализация
  • Препроцессор - как он работает и как разбор директив
  • Специальные разделы C - декларации, определения, typedef, const и volatile
  • Библиотеки - диагностика, управление символами, локализация, ограничения, математические функции, нелокальные goto, управление сигналами, ввод-вывод, форматированный ввод-вывод, неформатированный ввод-вывод, управление строками, дата, время и т.д
  • Готовые программы на C - складываем всё вместе, программы для отображения аргументов, программы сопоставления с образцом и другие, более амбициозные примеры.

Авторы дают право читателям свободно распространять книгу в случае, если авторы книги об этом знают. Один из авторов Майк Банахан подтвердил, что книга находится под лицензией Creative Commons.

C Elements of Style%image_alt% (265 страниц)

Написано Стивом Уалайн (Steve Oualline).

C Elements of Style - одна из самых полезных книг, она покрывает принципы хорошего стиля в написании кода, учит C и C++ программистов тому, как писать читабельный код, который будет с лёгкостью понят другими программистами и будет легко поддерживаемым. Не имеет значения, студенты вы или профессионал, вы, определённо, сможете вынести что-то для себя из этой книги, а именно - огромное число советов по построению элегантного, надёжного кода.

Автор пытается продемонстрировать использование хорошего стиля программирования в своём коде. Так как компьютер читает строки кода, а человек больше фокусируется на комментариях, хорошо написанный код содержит в себе и то, и другое.

Главной целью книги является научить читателя писать хорошо структурированный код, который не только эффективно использует ресурсы компьютера, но и содержит в себе комментарии. Такой код будет легко исправлять, поддерживать и совершенствовать.

Книга содержит в себе целые руководства по таким вещам, как написание комментариев в шапке кода, именование переменных, форматирование выражений и так далее.

Как и предыдущий экземпляр, книга опубликована по лицензии Creative Commons.

Build Your Own LispBuild Your Own Lisp (212 страниц)

Написано Даниелем Холденом (Daniel Holden).

Изучите язык C и одновременно научитесь создавать свой собственный язык программирования Lisp в менее, чем 1000 строках кода.

Эта книга подойдёт тем, кто хочет освоить язык C и тем, кто хоть раз задавался вопросом "как создать язык программирования". Стоит отметить, что книга не для новичков, так как вам стоит иметь некоторый опыт в программировании, чтобы читать и понимать содержание.

Build Your Own Lisp находится под лицензией Creative Commons Attribution-NonCommercial-ShareAlike 3.0.

Мягкий переплёт можно заказать на Amazon.

The GNU C Reference Manual (91 страница)

Книга написана Трэвисом Ротвеллом (Trevis Rothwell) и Джэймсом Янгманом (James Yongman)

The GNU C Reference Manual - это справочное руководство по языку C и направлено на стандарт ANSI C 1989, ISO C 1999 и GNU расширение стандартного C. Нужно отметить, что книга написана не для новичков, а скорее для тех, у кого есть опыт.

Книга включает следующие главы:

  • Лексические элементы - книга объясняет читателю лексические элементы, которые входят в исходный код на языке C после препроцессинга. Эти элементы называются токенами (token). Есть 5 типов токенов: ключевые слова, идентификаторы, константы, операторы и разделители.
  • Типы данных - рассматривает примитивные типы данных в языке C, enum, union, структуры, массивы, указатели, классификаторы и так далее
  • Выражения и операторы - такие вещи, как инкрементирование, декрементирование, арифметические операторы, комплексное сопряжение, операторы сравнения, логические операторы и так далее
  • Стейтменты - if statement, switch, while, do, for, null, goto, break, continue, return, typedef.
  • Функции - объявление функций, вызов функций, параметры функции и т.д
  • Структура программы - рассмотрение полной картины жизненного цикла программы
  • Программа на C - готовая программа, написанная на C, состоящая из исходного кода на C, а также заголовочного файла. По факту, эта программа - расширенная версия всем известного "hello world" и служит для того, что показать читателю, как правильно форматировать и структурировать код на языке C для использования в программах для FSF Project GNU

Книга находится под бесплатной лицензией GNU Free Documentation, версии 1.3.

The GNU C Programming Tutorial (290 страниц)

Книга написана Марком Бюргсом (Mark Burgess) и Роном Хэйл-Эвансом (Ron Hale-Evans).

The GNU C Programming Tutorial представляет читателю базовые идеи в логическом порядке. Книга затрагивает все важные элементы языка C с упором на компилятор GNU/Linux и связанное с ним программное обеспечение.

Главы книги охватывают такие вещи, как функции, переменные, параметры, указатели, логические операторы, циклы, массивы, строки, ввод и вывод данных и многое другое.

Книга находится под бесплатной лицензией GNU Free Documentation License, версии 1.1.

Essential C (45 страниц)

Одна из лучших книг, написана Ником Парланте (Nick Parlante).

Стэнфордская статья по CS, которая в то же время являтеся источником, который описывает все ключевые особенности и техники использования языка C. Следует отметить, что всё описано очень кратко, так как книга направлена на программиста, который имеет опыт в использовании другого языка.

Содержание:

  • Вступление
  • Базовые типы данных и операторы
  • Структуры данных
  • Комплексные типы данных
  • Функции
  • Массивы и указатели
  • Standard Library Reference

По словам автора, книга находится под лицензией open-source.

Beej’s Guide to C Programming (130 страниц)

Книга написана Брайаном "Бидж" Холл (Brian "Breej" Hall).

Автор пытается привести читателя из состояния полной растерянности до состояния абсолютного понимания материала, и делает он это с использованием языка C.

Содержание:

  • Написание кода и блоки кода
  • Переменные, выражения
  • Функции
  • Продолжение главы про переменные
  • Указатели
  • Структуры данных
  • Массивы
  • Строки
  • Динамическая память
  • Больше всего интересного - затрагиваются такие вещи, как 2-х и 3-х мерные массивы, пустые указатели, глобальные переменные и так далее
  • Библиотека iostream
  • Манипуляции со строками
  • Математика

Данная книга находится под лицензией Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 License.

Modern C (310 страниц)

Книга написана Дженсом Густедтом (Jens Gustedt).

Книга призвана смотивировать читателя идти вверх и узнавать что-то новое. Она разделена на 5 отдельных частей:

  • Первая - базовые программы, написанные на языке C, их структура, как их использовать и так далее
  • Вторая - в этой части рассматриваются самые фундаментальные концепции и особенности языка C. Из них: типы данных, функции и операторы. Книга нацелена на то, чтобы дать читателю более глубокое понимание вещей, которые происходят в работающей программе
  • Третья - сердце языка C. Здесь идёт объяснение таких вещей, как указатели и модель памяти в языке C
  • Четвертая - более детальное описание таких вещей, как оптимизация, автоматизирование, потоки и так далее
  • Пятая - в последней части автор рассуждает о дальнейшем развитии языка C

Книга находится под лицензией Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 License.

An Introduction to GCCAn Introduction to GCC (144 страницы)

Книга написана Брайаном Гафом (Brian Gough).

Книга сама по себе, является этаким первым шагом в GNU C и C++ компиляторы - gcc и g++, которые являются частью GNU Compiler Collection (GCC).

Книга объясняет, как используются компиляторы. Основываясь на многолетних исследованиях, автор описывает читателю все самые важные аспекты GCC.

Содержание:
  • Вступление
  • Компилирование программы на языке C - в главе объясняется то, как скомпилировать программу на языке C, используя gcc. Программы могут быть скомпилированы с одного или нескольких исходных файлов, а так же системных файлов и header-файлов
  • Варианты компиляции - автор рассказывает читателю о малоизвестных фишках компиляторов в GCC. Это могут быть разные пути к библиотекам и include-файлам, использование дополнительных диагностик на ошибки, макросы препроцессора и диалекты языка C
  • Использование препроцессора - в данной главе идёт объяснение того, как используется препроцессор GNU C CPP, который является частью пакета GCC.
  • Компилирование и отладка
  • Компилирование с оптимизацией - GCC - это оптимизирующий компилятор. Он предоставляет широкий ряд опций, которые направлены на увеличение скорости, уменьшение размера файлов и так далее
  • Компилирование программы на C++ - здесь идёт объяснение того, как компилируются программы на C++ с помощью компилятора GCC
  • Различные опции под разные платформы - в данной главе автор рассказывает о различных опциях, доступных для разных платформ: Intel и AMD x86, расширение x86, x86 64-битные процессоры, DEC Alpha, SPARC, POWER/PowerPC, мультиархитектурная поддержка и так далее
  • Отладка - GCC предоставляет нам разные инструменты для диагностики проблем в процессе компиляции
  • Инструменты для компилятора - автор рассказывает о различных инструментах, которые могут быть полезны вместе с GCC. В них входят: GNU архиватор для создания библиотек, программы для покрытия кода тестами gprof и gcov и другие
  • Как работает компилятор - в данной главе рассказывается в деталях о том, как GCC преобразовывает исходный код в исполняемый файл. Компиляция - это процесс, в котором нужен сам компилятор GNU (через gcc или g++ интерфейсы), GNU сборщик as и GNU линкер ld.
  • Проверка скомпилированных файлов - некоторые полезные инструменты для проверки скомпилированных файлов
  • Распространённые ошибки - самые распространённые ошибки, возникающие во время использования gcc и g++. Каждая из ошибок представлена с описанием, возможной причиной и решением
  • Дополнительные материалы - если читатель чего-то не понял в процессе чтения, то автор приводит ряд полезных источников для более подробного изучения GCC

Книга находится под бесплатной лицензией GNU Free Documentation License.

Заключение

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

И под конец, моя рекомендация: приобретите каноничную книгу по языку C: The C Programming Language. Хоть она и не для начинающих, но очень часто упоминается как классическая книга для изучения C.

Другие статьи по теме

Подборка книг по C++ для любого уровня

Идеальная подборка книг для разработчиков

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ