ru

Фундаментальные принципы С: приближаясь к машине на русском

#1546040
Фундаментальные принципы С: приближаясь к машине

Fundamental C: Getting Closer To The Machine (B07RZ5RR35)

Купить и скачать электронную книгу в форматах PDF, EPUB, FB2, MOBI

Harry Fairhead | #5144: Компьютерное программирование

4.4 (28)

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


В основе языка C лежит подход, близкий к аппаратному обеспечению, вводящий адреса, указатели и способ представления данных с помощью двоичного кода. Важная идея заключается в том, что всё представляет собой битовый шаблон, и его значение может меняться. Разработчику на C необходимо думать о способе представления данных, и Гарри Фэйрхед всячески это поощряет. Он подчеркивает идею изменения способа обработки битового шаблона с помощью преобразования типов и объединений. Эта возможность влечет за собой бич мира C — неопределенное поведение, которое игнорируется во многих книгах по C. Здесь же оно не только признается, но и объясняется, а также предлагаются способы его предотвращения.

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

Для начинающих книга охватывает установку IDE и GCC перед написанием программы "Hello World", а затем представляет основные строительные блоки любой программы — переменные, присваивание и выражения, управление потоком выполнения с помощью условных операторов и циклов.

После изучения основ рассматриваются типы данных, а затем арифметика и представление данных. Далее Гарри углубляется в вычисление выражений, после чего переходит к функциям, их области видимости и времени жизни. Массивы, строки, указатели и структуры рассматриваются в отдельных главах, как и битовые операции — ключевая тема для использования C, а также идея файла как универсального подхода к вводу-выводу. Наконец, он рассматривает четыре этапа компиляции программы на C, использование статических и динамических библиотек и make.

Это нота C в том виде, в каком она всегда задумывалась — близко к металлу.


Гарри Фэйрхед имеет опыт работы с аппаратным обеспечением и, много лет проработав с микропроцессорами и электроникой в ​​целом, является активным сторонником Интернета вещей (IoT). Среди его последних работ — «Raspberry Pi IoT на C» и «Micro:bit IoT на C». Его следующая книга, «Применение C для IoT с Linux на среднем/продвинутом уровне», предназначена в качестве дополнения к этой книге для тех, кто работает в среде Linux/POSIX, в частности, с Raspberry Pi.