Язык C. Мастерство программирования. Принципы, практики и паттерны [Кристофер Прешерн] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Прешерн К.

Язык С
Мастерство программирования
Принципы, практики и паттерны

Fluent C

Principles, Practices, and Patterns

Christopher Preschern

Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo

Язык С
Мастерство программирования
Принципы, практики и паттерны

Прешерн К.

2023

УДК 004.4
ББК 32.372
П71

П71

Прешерн К.
Язык С. Мастерство программирования. Принципы, практики и паттерны / пер. с англ. А. Н. Слинкина – М.: ДМК Пресс, 2023. – 300 с.: ил.

ISBN 978-6-01810-340-7
В этом практическом руководстве начинающие и опытные програм­
мисты на C найдут наставления по принятию проектных решений, включая пошаговое применение паттернов к сквозным примерам.
Автор, один из ведущих членов сообщества паттернов проектирования,
объясняет, как организовать программу на C, как обрабатывать ошибки
и проектировать гибкие интерфейсы. В части I вы научитесь реализовывать проверенные практикой подходы к программированию на языке C;
часть II показывает, как паттерны программирования на C применяются
к реализации более крупных программ.

Copyright © 2023 Books.kz Limited Liability Partnership. All rights reserved.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку
вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи
с этим издательство не несет ответственности за возможные ошибки, связанные
с использованием книги.

ISBN 978-1-49210-973-3 (англ.)
ISBN 978-6-01810-340-7 (казах.)

© Christopher Preschern, 2023
© Оформление, перевод на русский язык, издание,
Books.kz, 2023

Оглавление
Предисловие....................................................................................................8
ЧАСТЬ I. Паттерны на C............................................................................... 25
Глава 1. Обработка ошибок......................................................................... 26
Сквозной пример..............................................................................................27
Разбиение функции................................................................................................ 29
Проверка условий.................................................................................................... 32
Принцип самурая.................................................................................................... 35
Переход к обработке ошибки................................................................................. 39
Запись об очистке.................................................................................................... 42
Объектная обработка ошибок................................................................................ 45
Резюме................................................................................................................48
Для дополнительного чтения...........................................................................49
Что дальше.........................................................................................................50

Глава 2. Возврат информации об ошибке................................................. 51
Сквозной пример..............................................................................................52
Возврат кода состояния.......................................................................................... 54
Возврат существенной информации об ошибке................................................... 61
Специальное возвращаемое значение.................................................................. 67
Протоколирование ошибок.................................................................................... 70
Резюме................................................................................................................77
Для дополнительного чтения...........................................................................77
Что дальше.........................................................................................................77

Глава 3. Управление памятью..................................................................... 78

Хранение данных и проблемы с динамической памятью..............................80
Сквозной пример.................................................................................................... 83
Сначала стек............................................................................................................ 83
Вечная память......................................................................................................... 86
Последствия............................................................................................................. 88
Отложенная очистка............................................................................................... 90
Единоличное владение........................................................................................... 94
Обертка выделения................................................................................................. 97
Проверка указателя............................................................................................... 102
Пул памяти............................................................................................................ 105
Резюме..............................................................................................................111
Для дополнительного чтения.........................................................................111
Что дальше.......................................................................................................112

Глава 4. Возврат данных из C-функций................................................... 113
Сквозной пример............................................................................................115
Возвращаемое значение....................................................................................... 116

6

 Оглавление
Выходные параметры........................................................................................... 119
Агрегат................................................................................................................... 123
Неизменяемый экземпляр................................................................................... 128
Буфер, принадлежащий вызывающей