Эффективный C. Профессиональное программирование

Эффективный C. Профессиональное программирование

Эффективный C. Профессиональное программирование
Автор: Сикорд Роберт С.
Дата выхода: 2022
Издательство: Питер
Количество страниц: 304
Размер файла: 3.6 MB
Тип файла: PDF
Добавил: Aleks-5
 Проверить на вирусы

Предисловие Паскаля Куока....14

Предисловие Олли Уайтхауса....15

Благодарности....16

Введение....17

Краткая история C....18

Стандарт C....19

Стандарт программирования CERT C....20

Для кого эта книга....20

Структура книги....21

От издательства....23

Глава 1. Знакомство с C....24

Разработка вашей первой программы на C....24

Компиляция и запуск вашей программы....25

Директивы препроцессора....26

Функция main....26

Проверка возвращаемого значения функции....28

Форматированный вывод....29

Редакторы и интегрированные среды разработки....30

Компиляторы....32

GNU Compiler Collection....32

Clang....33

Microsoft Visual Studio....33

Переносимость....34

Поведение, определяемое реализацией....35

Неуточненное поведение....35

Неопределенное поведение....35

Поведение, зависящее от региональных параметров, и распространенные расширения....37

Резюме....37

Глава 2. Объекты, функции и типы....38

Объекты, функции, типы и указатели....38

Объявление переменных....39

Перестановка значений местами (первая попытка)....40

Перестановка значений местами (вторая попытка)....42

Область видимости....44

Срок хранения....45

Выравнивание....47

Объектные типы....49

Логические типы....49

Символьные типы....49

Численные типы....50

Тип void....52

Функциональные типы....52

Производные типы....54

Указатели....54

Массивы....55

Структуры....57

Объединения....58

Теги....59

Квалификаторы типов....61

Квалификатор const....62

Квалификатор volatile....62

Квалификатор restrict....63

Упражнения....64

Резюме....64

Глава 3. Арифметические типы....65

Целые числа....65

Заполнение и точность....66

Заголовочный файл ....66

Объявление целочисленных переменных....67

Беззнаковые целые....67

Знаковые целые....71

Целочисленные константы....76

Числа с плавающей запятой....77

Типы с плавающей запятой....78

Арифметические операции с плавающей запятой....80

Значения с плавающей запятой....80

Константы с плавающей запятой....82

Арифметическое преобразование....83

Ранг преобразования целочисленных типов....84

Повышение разрядности целочисленных значений....85

Обычные арифметические преобразования....86

Пример автоматического приведения типов....88

Безопасное приведение типов....89

Резюме....91

Глава 4. Выражения и операции....92

Простое присваивание....92

Оценивание....94

Вызов функции....95

Операции инкремента и декремента....96

Приоритет и ассоциативность операций....97

Порядок вычисления....100

Непоследовательные и неопределенно последовательные вычисления....101

Точки следования....102

Операция sizeof....103

Арифметические операции....104

Унарные операции + и –....104

Логическая операция отрицания....105

Мультипликативные операции....105

Аддитивные операции....107

Побитовые операции....107

Операция дополнения....107

Операции сдвига....108

Побитовое И....110

Побитовое исключающее ИЛИ....111

Побитовое включающее ИЛИ....112

Логические операции....112

Операции приведения типов....114

Условная операция....115

Операция _Alignof....116

Операции сравнения....117

Операции составного присваивания....118

Операция «запятая»....118

Арифметические операции с указателями....119

Резюме....121

Глава 5. Управляющая логика....122

Операторы-выражения....122

Составные операторы....123

Операторы выбора....124

Оператор if....124

Оператор switch....128

Операторы итерирования....131

Оператор while....131

Оператор do...while....133

Оператор for....134

Операторы перехода....136

Оператор goto....136

Оператор continue....138

Оператор break....139

Оператор return....140

Упражнения....141

Резюме....141

Глава 6. Динамически выделяемая память....142

Срок хранения....142

Куча и диспетчеры памяти....143

Когда следует использовать динамически выделяемую память....144

Функции для управления памятью....145

Функция malloc....145

Функция aligned_alloc....148

Функция calloc....149

Функция realloc....149

Функция reallocarray....152

Функция free....152

Состояния памяти....154

Структуры с гибкими массивами....155

Другие виды динамически выделяемой памяти....157

Функция alloca....157

Массивы переменной длины....159

Отладка проблем, связанных с выделением памяти....163

Библиотека dmalloc....163

Системы с повышенными требованиями к безопасности....166

Упражнения....166

Резюме....167

Глава 7. Символы и строки....168

Символы....168

ASCII....169

Unicode....169

Исходная и исполняемая кодировки....171

Типы данных....172

Символьные константы....175

Управляющие последовательности....176

Linux....177

Windows....178

Преобразование символов....180

Строки....184

Строковые литералы....186

Функции для работы со строками....188

Заголовочные файлы и ....189

Интерфейсы с проверкой ограничений из приложения K....197

POSIX....200

Microsoft....202

Резюме....203

Глава 8. Ввод/вывод....204

Стандартные потоки ввода/вывода....204

Буферизация потоков....205

Встроенные потоки....206

Направленность потоков....208

Текстовые и двоичные потоки....208

Открытие и создание файлов....209

Функция fopen....209

Функция open из стандарта POSIX....212

Закрытие файлов....214

Функция fclose....214

Функция close из стандарта POSIX....215

Чтение и запись символов и строчек....216

Сброс потока на диск....218

Установка позиции в файле....219

Удаление и переименование файлов....222

Использование временных файлов....223

Чтение потоков форматированного текста....224

Чтение из двоичных потоков и запись в них....228

Резюме....232

Глава 9. Препроцессор (в соавторстве с Аароном Баллманом)....233

Процесс компиляции....233

Подключение файлов....235

Строки подключения с кавычками и угловыми скобками....236

Условное подключение....237

Генерация ошибок....238

Использование защиты подключения....239

Определение макросов....241

Замена макросов....244

Макросы с обобщенными типами....246

Встроенные макросы....248

Резюме....249

Глава 10. Структура программы (в соавторстве с Аароном Баллманом)....250

Принципы компонентного представления....250

Связанность и слаженность....251

Повторное использование кода....252

Абстракция данных....253

Непрозрачные типы....254

Исполняемые файлы....256

Компоновка....258

Структурирование простой программы....260

Сборка кода....265

Резюме....268

Глава 11. Отладка, тестирование и анализ....269

Утверждения....269

Статические утверждения....269

Динамические утверждения....272

Параметры и флаги компиляторов....274

GCC и Clang....275

Visual C++....279

Отладка....281

Модульное тестирование....285

Статический анализ....289

Динамический анализ....292

AddressSanitizer....293

Упражнения....298

Резюме....298

Список литературы....299

Об авторе....302

О соавторе....302

О научном редакторе....303

Мир работает на коде, написанном на C, но в большинстве учебных заведений программированию учат на Python или Java. Книга «Эффективный C. Профессиональное программирование» восполняет этот пробел и предлагает современный взгляд на C. Здесь рассмотрен C17, а также потенциальные возможности C2x. Издание неизбежно станет классикой, с его помощью вы научитесь писать профессиональные и надежные программы на C, которые лягут в основу устойчивых систем и решат реальные задачи.


Похожее:

Список отзывов:

Нет отзывов к книге.